
- •Логические узлы (агрегаты) эвм,
- •Простейшие типы архитектур
- •Тема 4: Принцип адресации и структура команд Тема лекции: Принципы адресации План лекции:
- •Общие сведения, определения и классификация
- •Логическая организация памяти и методы адресации информации
- •1. Параметры, определяемые чипсетом
- •1. Типы оперативной памяти
- •1. Мониторы на базе электронно-лучевой трубки.
- •2. Жидкокристаллические дисплеи
- •3. Плазменные мониторы
- •1. Устройство накопителей на жестких дисках
- •3. Характеристики накопителей на жестких дисках
- •1. Организация данных и основные характеристики cd-rom
- •3. Стандарты записи данных на cd
- •4. Накопители dvd
Логическая организация памяти и методы адресации информации
К основным способам логической организации памяти относятся адресная, ассоциативная и стековая организации. В случае адресной организации размещение и поиск информации в ЗУ основаны на использовании адреса хранения слова - номера ячейки ЗУ. Ассоциативная. Поиск производится не по адресу ячейки, а по ее содержимому (по ассоциативному признаку). Поиск при этом производится параллельно во всех ячейках ЗМ. Менее универсальная (гибкая) организация, но за счет совмещения операций выборки из памяти с логическими операциями можно ускорить обработку данных (например в базах данных). Стековая. Как и ассоциативная - безадресная стековая память - одномерный массив ячеек. Запись/выборка производится по дисциплине "последний пришел - первым обслужен" (LIFO). Адресная. Основная оперативная память вычислительной машины обычно является адресной. Это значит, что каждой хранимой в памяти единице информации (слову, байту) ставится в соответствие специальное число - адрес, определяющий место ее хранения в памяти. Сведения об адресе или его составных частях содержатся в команде в виде адресного кода. Следует, однако, различать адресный код в команде Ак и исполнительный адрес Аи - номер ячейки памяти, к которой производится фактическое обращение. В современных ЭВМ стремление к уменьшению длины кода команды и созданию удобств при программировании приводит к тому, что адресный код, как правило, не совпадает с исполнительным адресом. Методы адресации Далее рассмотрим основные методы адресации, используемые в современных ЭВМ. Подразумеваемый операнд. В команде не содержится явных указаний об адресе операнда; операнд подразумевается и фактически задается кодом операции команды. Данный метод используется не часто, однако имеется несколько важных случаев его применения. В качестве примера можно привести команды подсчета, в которых к некоторому числу (содержимому счетчика) прибавляется фиксированное приращение, часто единица младшего разряда. Один из операндов — число в счетчике — обычно адресуется явным методом, второй операнд — приращение — не адресуется, в памяти машины не содержится и является подразумеваемым. Подразумеваемый адрес. В команде не содержится явных указаний об адресе участвующего в операции операнда или адреса, по которому помещается результат операции, но этот адрес подразумевается. Например, команда может содержать адреса обоих операндов, участвующих в операции, при этом подразумевается, что результат операции помещается по адресу одного из операндов. Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд. При непосредственной адресации не требуется обращения к памяти для выборки операнда и ячейки памяти для его хранения. Это позволяет во многих случаях повысить быстродействие машины и уменьшить объем памяти, необходимый для данной задачи. Прямая адресация. Исполнительный адрес совпадает с адресной частью команды. Этот метод адресации был общепринятым в первых вычислительных машинах и продолжает применяться в настоящее время в комбинации с другими методами. Относительная адресация или базирование. Исполнительный адрес определяется суммой адресного кода команды Ак и некоторого числа Аб, называемого базовым адресом: Аи = Аб + Ак Для хранения базовых адресов в машине могут быть предусмотрены регистры или специально выделенные для этой цели ячейки памяти (базовые регистры). Относительная адресация облегчает распределение памяти при составлении несколькими программистами сложных программ. Каждый программист может располагать свою часть программы в памяти, начиная с нулевого адреса. При компоновке программы достаточно только задать соответствующие значения базовых адресов. Косвенная адресация. Адресный код команды указывает адрес ячейки памяти, в которой находится адрес операнда или команды. Таким образом, косвенная адресация может быть иначе определена как "адресация адреса". На косвенную адресацию указывает код операции команды, а в некоторых ЭВМ в команде отводится специальный разряд (указатель УК) и цифра 0 или 1 в нем указывает, является ли адресная часть команды прямым или косвенным адресом. Укороченная адресация. Для уменьшения длины кода команды часто применяется так называемая укороченная адресация. Суть её сводится к тому, что в команде задаются только младшие разряды адресов. Старшие разряды при этом подразумеваются нулевыми. Такая адресация позволяет использовать только, небольшую группу фиксированных ячеек с начальными (короткими) адресами и поэтому может использоваться лишь совместно с другими методами адресации. Лекция 10 Тема 4: Принцип адресации и структура команд Тема лекции: Структура команд План лекции:
Командный цикл процессора
Структура команд процессора
Системы операций
4.3 Командный цикл процессора Командой называется элементарное действие, которое может выполнить процессор без дальнейшей детализации. Последовательность команд, выполнение которых приводит к достижению определенной цели, называется программой. Команды программы кодируются двоичными словами и размещаются в памяти ЭВМ. Вся работа ЭВМ состоит в последовательном выполнении команд программы. Действия по выбору из памяти и выполнению одной команды называются командным циклом. В составе любого процессора имеется специальная ячейка, которая хранит адрес выполняемой команды — счетчик команд или программный счетчик. После выполнения очередной команды его значение увеличивается на единицу (если код одной команды занимает несколько ячеек памяти, то содержимое счетчика команд увеличивается на длину команды). Таким образом осуществляется выполнение последовательности команд. Существуют специальные команды (передачи управления), которые в процессе своего выполнения модифицируют содержимое программного счетчика, обеспечивая переходы по программе. Сама выполняемая команда помещается в регистр команд — специальную ячейку процессора. Во время выполнения командного цикла процессор реализует следующую последовательность действий:
Извлечение из памяти содержимого ячейки, адрес которой хранится в программном счетчике, и размещение этого кода в регистре команд (чтение команды).
Увеличение содержимого программного счетчика на единицу.
Формирование адреса операндов.
Извлечение операндов из памяти.
Выполнение заданной в команде операции.
Размещение результата операции в памяти.
Переход к п. 1.
Пункты 1, 2 и 7 обязательно выполняются в каждом командном цикле, остальные могут не выполняться в некоторых командах. Если длина кода команды составляет несколько машинных слов, то пп. 1 и 2 повторяются. Фактически вся работа процессора заключается в циклическом выполнении пунктов 1—7 командного цикла. При запуске машины в счетчик команд аппаратно помещается фиксированное значение — начальный адрес программы (часто 0 или последний адрес памяти; встречаются и более экзотические способы загрузки начального адреса). В дальнейшем содержимое программного счетчика модифицируется в командном цикле. Прекращение выполнения командных циклов может произойти только при выполнении специальной команды "СТОП". 4.3 Структура команд процессора Разнообразие типов данных, форм их представления и действий, которые необходимы для обработки информации и управления ходом вычислений, порождает необходимость использования различных команд — набора команд. Каждый процессор имеет собственный вполне определенный набор команд, называемый системой команд процессора. Система команд должна обладать двумя свойствами — функциональной полнотой и эффективностью. Функциональная полнота — это достаточность системы команд для описания любого алгоритма. Требование функциональной полноты не является слишком жестким. Доказано, что свойством функциональной полноты обладает система, включающая всего три команды (система Поста): присвоение О, присвоение 1, проверка на 0. Однако составление программ в такой системе команд крайне неэффективно. Эффективность системы команд — степень соответствия системы команд назначению ЭВМ, т. е. классу алгоритмов, для выполнения которых предназначается ЭВМ, а также требованиям к производительности ЭВМ. Очевидно, что реализация развитой системы команд связана с большими затратами оборудования и, следовательно, с высокой стоимостью процессора. В то же время ограниченный набор команд приводит к снижению производительности и повышенным требованиям к памяти для размещения программы. Даже простые и дешевые современные микропроцессоры поддерживают систему команд, содержащую несколько десятков (а с модификациями — сотен) команд. Система команд процессора характеризуется тремя аспектами: форматами, способами адресации и системой операций. Форматы команд Под форматом команды следует понимать длину команды, количество, размер, положение, назначение и способ кодировки ее полей. Команды, как и любая информация в ЭВМ, кодируются двоичными словами, которые должны содержать в себе следующие виды информации:
тип операции, которую следует реализовать в данной команде (КОП);
место в памяти, откуда следует взять первый операнд (А1);
место в памяти, откуда следует взять второй операнд (А2);
место в памяти, куда следует поместить результат (A3).
Способы адресации команд Способ адресации определяет, каким образом следует использовать информацию, размещенную в поле адреса команды. Не следует думать, что во всех случаях в поле адреса команды помещается адрес операнда. Существует пять основных способов адресации операндов в командах.
Прямая — в этом случае в адресном поле располагается адрес операнда. Разновидность — прямая регистровая адресация, адресующая не ячейку памяти, а РОН. Поле адреса регистра имеет в команде значительно меньшую длину, чем поле адреса памяти.
Непосредственная — в поле адреса команды располагается не адрес операнда, а сам операнд. Такой способ удобно использовать в командах с константами.
Косвенная — в поле адреса команды располагается адрес ячейки памяти, в которой хранится адрес операнда ("адрес адреса"). Такой способ позволяет оперировать адресами как данными, что облегчает организацию циклов, обработку массивов данных и др. Его основной недостаток— потеря времени на двойное обращение к памяти — сначала за адресом, потом — за операндом. Разновидность — косвенно-регистровая адресация, при которой в поле команды размещается адрес РОН, хранящего адрес операнда.
Этот способ, помимо преимущества обычной косвенной адресации, позволяет обращаться к большой памяти с помощью коротких команд и не требует двойного обращения к памяти (обращение к регистру занимает гораздо меньше времени, чем к памяти).
Относительная — адрес формируется как сумма двух слагаемых: базы, хранящейся в специальном регистре или в одном из РОН, и смещения, извлекаемого из поля адреса команды. Этот способ позволяет сократить длину команды (смещение может быть укороченным, правда в этом случае не вся память доступна в команде) и/или перемещать адресуемые массивы информации по памяти (изменяя базу).
Разновидности — индексная и базово-индексная адресации. Индексная адресация предполагает наличие индексного регистра вместо базового. При каждом обращении содержимое индексного регистра автоматически модифицируется (обычно увеличивается или уменьшается на 1). Базово-индексная адресация формирует адрес операнда как сумму трех слагаемых: базы, индекса и смещения.
Безадресная — поле адреса в команде отсутствует, а адрес операнда или не имеет смысла для данной команды, или подразумевается по умолчанию. Часто безадресные команды подразумевают действия над содержимым аккумулятора. Характерно, что безадресные команды нельзя применить к другим регистрам или ячейкам памяти.
Одной из разновидностей безадресного обращения является использование т. н. магазинной памяти или стека. Обращение к такой памяти напоминает обращение с магазином стрелкового оружия. Имеется фиксированная ячейка, называемая верхушкой стека. При чтении слово извлекается из верхушки, а все остальное содержимое "поднимается вверх" подобно патронам в магазине, так что в верхушке оказывается следующее по порядку слово. Одно слово нельзя прочитать из стека дважды. При записи новое слово помещается в верхушку стека, а все остальное содержимое "опускается вниз" на одну позицию. Таким образом, слово, помещенное в стек первым, будет прочитано последним. Говорят, что стек поддерживает дисциплину LIFO — Last In First Out (последний пришел — первый ушел). Реже используется безадресная память типа очередь с дисциплиной FIFO — First In First Out (первый пришел — первый ушел). 4.4 Система операций Все операции, выполняемые в командах ЭВМ, принято делить на пять классов.
Арифметико-логические и специальные — команды, в которых выполняется собственно преобразование информации. К ним относятся арифметические операции сложение, вычитание, умножение и деление (с фиксированной и плавающей занятой), команды десятичной арифме-тики, логические операции конъюнкции, дизъюнкции, инверсии и др., сдвиги, преобразо-вание чисел из одной системы счисления в другую и такие экзотические, как извлечение корня, решение системы уравнений и др. Конечно, очень редко встречаются ЭВМ, система команд которых включает все эти команды.
Пересылки и загрузки — обеспечивают передачу информации между процессором и памятью или между различными уровнями памяти (СОЗУ ОЗУ). Разновидность — загрузка регистров и ячеек константами.
□ Ввода/вывода — обеспечивают передачу информации между процессором и внешними устройствами. По структуре они очень похожи на команды предыдущего класса. В некоторых ЭВМ принципиально отсутствует различие между ячейками памяти и регистрами внешних устройств (единое адресное пространство) и класс команд ввода/вывода не выделяется, все обмены осуществляются в рамках команд пересылки и загрузки. □ Передачи управления — команды, которые изменяют естественный порядок выполнения команд программы. Эти команды меняют содержимое программного счетчика, обеспечивая переходы по программе. Существуют команды безусловной и условной передачи управления. В последнем случае передача управления происходит, если выполняется заданное в коде команды условие, иначе выполняется следующая по порядку команда. В качестве условий обычно используются признаки результата предыдущей операции, которые хранятся в специальном регистре признаков (флажков). Чаще всего формируются и проверяются признаки нулевого результата, отрицательного результата, наличия переноса из старшего разряда, четности числа единиц в результате и др. Различают три разновидности команд передачи управления:
переходы;
вызовы подпрограмм;
возвраты из подпрограмм.
Команды переходов помещают в программный счетчик содержимое своего адресного поля — адрес перехода. При этом старое значение программного счетчика теряется. В микроЭВМ часто для экономии длины адресного поля команд условных переходов адрес перехода формируется как сумма текущего значения программного счетчика и относительно короткого знакового смещения, размещаемого в команде. В крайнем случае, в командах условных переходов можно и вовсе обойтись без адресной части — при выполнении условия команда "перепрыгивает" через следующую команду, которой обычно является безусловный переход. Команда вызова подпрограммы работает подобно команде безусловного перехода, но старое значение программного счетчика предварительно сохраняется в специальном регистре или в стеке. Команда возврата передает содержимое верхушки стека или специального регистра в программный счетчик. Команды вызова и возврата работают "в паре". Подпрограмма, вызываемая командой вызова, должна заканчиваться командой возврата, что обеспечивает по окончании работы подпрограммы передачу управления в точку вызова. Хранение адресов возврата в стеке обеспечивает возможность реализации вложенных подпрограмм. □ Системные— команды, выполняющие управление процессом обработки информации и внутренними ресурсами процессора. К таким командам относятся команды управления подсистемой прерывания, команды установки и изменения параметров защиты памяти, команда останова программы и некоторые другие. В простых процессорах класс системных команд немногочисленный, а в сложных мультипрограммных системах предусматривается большое число системных команд.
КОНТРОЛЬНЫЕ ВОПРОСЫ по теме 4
Что входит в понятие память ЭВМ.
Дайте определение ёмкости памяти.
Объясните понятие быстродействие памяти.
Как различают память в зависимости от её реализации.
Объясните иерархической структуры запоминающих устройств.
Основные способы логической организации памяти.
Основные методы адресации, используемые в современных ЭВМ
Дайте определение команды и программы. Как они кодируются и где размещаются.
Что такое счетчик команд, регистр команд и выполняемые ими функции.
Последовательность действий во время выполнения командного цикла.
Что такое система команд процессора и её свойства.
Объясните понятие формат команды
Какую информацию должна содержать команда.
Что такое способ адресации, и какие основные способы адресации операндов в командах.
Расскажите о системах операций выполняемых в командах ЭВМ и её делении.
Что относится к Арифметико-логическим операциям
Что относится к операциям Пересылки и загрузки.
Что относится к операциям Ввода/вывода.
Что относится к операциям Передачи управления.
Что относится к Системным операциям.
Расскажите о командах перехода.
Состав компьютера Любой IBM PC-совместимый компьютер представляет собой реализацию так называемой фон-неймановской архитектуры вычислительных машин. Фон-неймановская архитектура — не единственный вариант построения ЭВМ, есть и другие, которые не соответствуют указанным принципам (например, потоковые машины). Однако подавляющее большинство современных компьютеров основаны именно на указанных принципах, включая и сложные многопроцессорные комплексы, которые можно рассматривать как объединение фон-неймановских машин. Конечно же, за более чем полувековую историю ЭВМ классическая архитектура прошла длинный путь развития. Тем не менее ПК можно «разложить по полочкам» следующим образом. Центральный процессор (АЛУ с блоком управления) реализуется микропроцессором семейства х86 — от 8086/88 до новейших процессоров Pentium, Athlon, Opteron и т.д. Набор арифметических, логических и прочих инструкций насчитывает несколько сотен, а для потоковой обработки придуман принцип SIMD (Single Instruction Multiple Data — множество комплектов данных, обрабатываемых одной инструкцией), по которому работают расширения ММХ, 3DNow, SSE. Процессор имеет набор регистров, часть которых доступна для хранения операндов, выполнения действий над ними и формирования адреса инструкций и операндов в памяти. Другая часть регистров используется процессором для служебных (системных) целей, доступ к ним может быть ограничен (есть даже программно-невидимые регистры). Все компоненты компьютера представляются для процессора в виде наборов ячеек памяти или/и портов ввода-вывода, в которые процессор может записывать и/или из которых может считывать содержимое. Оперативная память (ОЗУ) — самый большой массив ячеек памяти со смежными адресами — реализуется, как правило, на модулях (микросхемах) динамической памяти. Для повышения производительности обмена данными (включая и считывание команд) оперативная память кэшируется сверхоперативной памятью. Два уровня кэширования территориально располагаются в микропроцессоре. Оперативная память вместе с кэшем всех уровней (в настоящее время — до трех) представляет собой единый массив памяти, непосредственно доступный процессору для записи и чтения данных, а также считывания программного кода. Помимо оперативной память включает также постоянную (ПЗУ), из которой можно только считывать команды и данные, и некоторые виды специальной памяти (например, видеопамять графического адаптера). Вся эта память (вместе с оперативной) располагается в едином пространстве с линейной адресацией. В любом компьютере обязательно есть энергонезависимая память, в которой хранится программа начального запуска компьютера и минимально необходимый набор сервисов (ROM BIOS). Процессор (один или несколько), память и необходимые элементы, связывающие их между собой и с другими устройствами, называют центральной частью, или ядром, компьютера (или просто центром). То, что в фон-неймановском компьютере называлось устройствами ввода-вывода (УВВ), удобнее называть периферийными устройствами. Периферийные устройства (ПУ) — это все программно-доступные компоненты компьютера, не попавшие в его центральную часть. Их можно разделить по назначению на несколько классов:
Устройства хранения данных (устройства внешней памяти) — дисковые (магнитные, оптические, магнитооптические), твердотельные (карты, модули и USB-устройства на флэш-памяти). Эти устройства используются для сохранения информации, находящейся в памяти, на энергонезависимых носителях и загрузки этой информации в оперативную память.
Устройства ввода-вывода служат для преобразования информации из внутреннего представления компьютера (биты и байты) в форму, понятную окружающим, и обратно.
Коммуникационные устройства служат для передачи информации между компьютерами и/или их частями. Сюда относят модемы (проводные, радио, оптические, инфракрасные...), адаптеры локальных и глобальных сетей. В данном случае преобразование формы представления информации требуется только для передачи ее на расстояние.
Процессор, память и периферийные устройства взаимодействуют между собой с помощью шин и интерфейсов, аппаратных и программных; стандартизация интерфейсов делает архитектуру компьютеров открытой. 1.5 Биты, байты, слова Компьютер работает в двоичной системе счисления — минимальным информационным элементом является бит, который может принимать значение 0 или 1. Этим значениям соответствуют различимые физические состояния ячейки, чаще всего — уровень напряжения (низкий или высокий). Биты организуются в более крупные образования — ячейки памяти и регистры. Каждая ячейка памяти (и каждый регистр) имеет свой адрес, однозначно ее идентифицирующий в определенной системе координат. Минимальной адресуемой (пересылаемой между компонентами компьютера) единицей информации является байт, состоящий из 8 бит. Два байта со смежными адресами образуют слово (word) разрядностью 16 бит, два смежных слова — двойное слово (double word) разрядностью 32 бита, два смежных двойных слова — учетверенное слово (quad word) разрядностью 64 бита. Байт (8 бит) делится на пару тетрад (nibble): старшую тетраду — биты [7:4] и младшую тетраду -биты [3:0]. В двухбайтном слове принят LH-порядок следования байтов: адрес слова указывает на младший байт L (Low), а старший байт Н (High) размещается по адресу, большему на единицу. В двойном слове порядок аналогичен — адрес указывает на самый младший байт, после которого размещены следующие по старшинству. В технической документации, электрических схемах и текстах программ могут применяться разные способы представления чисел:
Двоичные (binary) числа — каждая цифра отражает значение одного бита (0 или 1), старший бит всегда пишется слева, после числа ставится буква «b». Для удобства восприятия тетрады могут быть разделены пробелами, например, 1010 0101b.
Шестнадцатеричные (hexadecimal) числа — каждая тетрада представляется одним символом 0...9, А, В, C, D, E, F. Обозначаться такое представление может по-разному, в данной книге используется только символ «h» после последней шестнадцатеричной цифры, например, A5h. В текстах программ это же число может обозначаться и как 0хА5, и как 0A5h, в зависимости от синтаксиса языка программирования. Незначащий ноль (0) добавляется слева от старшей шестнадцатеричной цифры, изображаемой буквой, чтобы различать числа и символические имена.
Десятичные (decimal) числа — каждый байт (слово, двойное слово) представляется обычным числом, а признак десятичного представления (букву «d») обычно опускают. Байт из предыдущих примеров имеет десятичное значение 165. В отличие от двоичной и шестнадцатеричной форм записи, по десятичной трудно в уме определить значение каждого бита, что иногда приходится делать.
Восьмеричные (octal) числа — каждая тройка битов (разделение начинается с младшего) записывается в виде цифры из интервала 0-7, в конце ставится признак «о». То же самое число записывается как 245о. Восьмеричная система неудобна тем, что байт не разделить поровну, но зато все цифры — привычные.
Ячейки памяти, порты и регистры Поясним разницу между ячейками памяти, портами и регистрами. Ячейки памяти служат лишь для хранения информации — сначала ее записывают в ячейку, а потом могут прочитать, а также записать иную информацию. Порты ввода-вывода, как правило, служат для преобразования двоичной информации в какие-либо физические сигналы и обратно. Например, порт данных параллельного интерфейса формирует электрические сигналы на разъеме, к которому обычно подключают принтер. Электрические сигналы, поступающие от принтера, порт состояния того же интерфейса отображает в виде набора битов, который может быть считан процессором. Регистр — довольно широкое понятие, которое зачастую используется как синоним порта. Регистры могут служить для управления устройствами (и их контроллерами) и для чтения их состояния. Регистры (как и порты) могут образовывать каналы:
Каналы ввода-вывода данных. Пример — регистр данных СОМ-порта: байты, записываемые друг за другом в этот регистр, в том же порядке будут передаваться по последовательному интерфейсу, то есть поступать в канал вывода. Если этот интерфейс подключить к СОМ-порту другого компьютера и выполнять программные чтения его регистра данных, мы получим байт за байтом переданные данные. Таким образом, здесь регистр играет роль канала ввода.
Каналы управления. Если запись в регистр определенных данных (битовых комбинаций) изменяет состояние некоего устройства (сигнал светофора, положение какого-то механизма...), то регистр образует канал управления.
Каналы состояния. Пример — регистр игрового порта (game-порт), к которому подключен джойстик. Чтение регистра дает информацию о состоянии кнопок джойстика (нажаты или нет).
Канал отличается от ячейки памяти рядом свойств. Если в ячейку памяти записывать раз за разом информацию, то последующее считывание возвращает результат последней записи, а все предшествующие записи оказываются бесполезными. Если ячейку памяти считывать раз за разом, не выполняя запись в нее, то результат считывания каждый раз будет одним и тем же. «Лишнее» чтение ячейки памяти не приведет ни к каким побочным эффектам. Каждый байт (ячейка памяти, порт, регистр) имеет собственный уникальный физический адрес. Этот адрес устанавливается на системной шине процессором, когда он инициирует обращение к данным ячейке или порту. По этому же адресу к этой ячейке (порту, регистру) могут обращаться и другие активные компоненты системы — так называемые мастера шины. В семействе х86 и PC-совместимых компьютерах пространства адресов ячеек памяти и портов ввода-вывода разделены.. Нынешние 32-битные процессоры имеют разрядность физического адреса памяти 32 и даже 36 бит, что позволяет адресовать до 4 и 64 Гбайт соответственно. Пространство ввода-вывода использует только младшие 16 бит адреса, что позволяет адресовать до 65 384 однобайтных регистров. Регистры различных устройств могут быть приписаны как к пространству портов ввода-вывода, так и к пространству памяти. Под портом устройства, как правило, подразумевают регистр, связанный с этим устройством и приписанный к пространству портов ввода-вывода. Точность приведенной терминологии, конечно же, относительна. Так, к примеру, ячейки видеопамяти (тоже память!) служат в основном не для хранения информации, а для управления свечением элементов экрана. Понятие Memory Mapped I/O означает регистры периферийных устройств, отображенные на пространство памяти (то есть занимающие адреса именно в этом пространстве, а не в пространстве ввода-вывода). Разделение пространств памяти и ввода-вывода было вынужденной мерой в условиях дефицита адресуемого пространства 16-битных процессоров и сохранилось во всех процессорах х86. В процессорах ряда других семейств такого разделения нет, и для нужд ввода-вывода используется выделенная область единого адресного пространства. Тенденция изживания пространства ввода-вывода наблюдается в современных спецификациях устройств и интерфейсов для PC.
Состав системного блока Системный блок обычно включает в себя: системную плату, блок питания, накопители на дисках, разъемы для дополнительных устройств; платы расширения с контроллерами — адаптерами внешних устройств. В зависимости от его конфигурации и размеров корпуса определяются такие характеристики ПК, как возможность дальнейшего расширения, транспортировка, доступ к компонентам и т. д. Типы корпусов: Slimline, Desktop, Tower (Mini-Tower, Midi-Tower, Super-Big-Tower), File Server (рис. 1.4). Рисунок 1.4- Типы корпусов ПК Системная плата (рис. 4.4) является основой системного блока, который обеспечивает внутренние связи, взаимодействует через прерывания с внешними устройствами и содержит компоненты, определяющие архитектуру ПК. Системные платы с различными микропроцессорами отличаются друг от друга по типам применяемых элементов и модулей памяти, возможностям конфигурирования и т. д. Набор микросхем на системной плате, обеспечивающий работу ЦП по обмену данными с периферийными устройствами, называют Chipset.
Разъемы задней панели 1,2 – разъемы PS/2 (мышь и клавиатура) 3,4 – разъемы USB 5 – принтер (LPT1 6-9 – штырьковые (D9) разъемы последовательных портов 8 – игровой порт 9, 10, 11- разъемы звуковой платы (микрофон, линейный вход, линейный выход) Рисунок 1.5-Системная плата АТХ и её основные разъемы Чипсет Chipset, или «PCIset» — совокупность микросхем, размещенных на системной плате, которые организуют потоки команд и данных в ПЭВМ. Сюда входят: основная память, вторичная кэш-память и устройства, связанные с шинами ISA и PCI. Кроме того, чипсет контролирует потоки данных НЖМД и других устройств, соединенных с каналом IDE. Иногда в состав чипсета включают и сам микропроцессор. Чипсеты производят различные фирмы — SIS, VIA, OPTI и Intel
Дополнительные интегральные микросхемы К системной шине и к МП ПК наряду с типовыми внешними устройствами могут быть подключены и некоторые дополнительные интегральные микросхемы, расширяющие и улучшающие функциональные возможности микропроцессора:
математический сопроцессор;
контроллер прямого доступа к памяти;
сопроцессор ввода-вывода;
контроллер прерываний и т. д.
Математический сопроцессор широко используется для ускоренного выполнения операций над двоичными числами с фиксированной и плавающей запятой, над двоично-кодированными десятичными числами, для вычисления некоторых трансцендентных, в том числе тригонометрических функций. Математический сопроцессор имеет свою систему команд и работает параллельно (совме-щенно во времени) с основным МП, но под управлением последнего. Ускорение операций происходит в десятки раз. Контроллер прямого доступа к памяти (DMA — Direct Memory Access) обеспечивает обмен данными между внешними устройствами и оперативной памятью без участия микропроцессора, что существенно повышает эффективное быстродействие ПК. Иными словами, режим DMA позволяет освободить процессор от рутинной пересылки данных между внешними устройствами и ОП, отдав эту работу контроллеру DMA; процессор в это время может обрабатывать другие данные или другую задачу в многозадачной системе. Сопроцессор ввода-вывода за счет параллельной работы с МП существенно ускоряет выполнение процедур ввода-вывода при обслуживании нескольких внешних устройств (дисплея, принтера, НЖМД, НГМД и т. д.); освобождает МП от обработки процедур ввода-вывода, в том числе реализует и режим прямого доступа к памяти. Контроллер прерываний обслуживает процедуры прерывания. Прерывание — временная приостановка выполнения одной программы с целью оперативного выполнения другой, в данный момент более важной (приоритетной) программы. Контроллер принимает запрос на прерывание от внешних устройств, определяет уровень приоритета этого запроса и выдает сигнал прерывания в МП. Микропроцессор, получив этот сигнал, приостанавливает выполнение текущей программы и переходит к выполнению специальной программы обслуживания того прерывания, которое запросило внешнее устройство. После завершения программы обслуживания восстанавливается выполнение прерванной программы. Контроллер прерываний является программируемым. Прерывания возникают при работе компьютера постоянно, достаточно сказать, что все процедуры ввода-вывода информации выполняются по прерываниям. Например, в компьютерах IBM PC прерывания от таймера возникают и обслуживаются контроллером прерываний 18 раз в секунду (длятся эти прерывания тысячные доли секунды и поэтому пользователь их не замечает). Основная память Основная память (ОП) предназначена для хранения и оперативного обмена информацией с прочими блоками машины. ОП содержит два вида запоминающих устройств: • оперативное запоминающее устройство (ОЗУ, RAM — Random Access Memory) предназначено для оперативной записи, хранения и считывания информации (программ и данных), непосредственно участвующей в информационно-вычислительном процессе, выполняемом ПК в текущий период времени. Большинство современных компьютеров комплектуются модулями типа DIMM (Dual-In-line Memory Module — модуль памяти с двухрядным расположением микросхем). В компьютерных системах на самых современных процессорах используются высокоскоростные модули Rambus DRAM (RIMM) и DDR2 DRAM.
Рисунок 1.7- Модули памяти RIMM и DIMM • постоянное запоминающее устройство (ПЗУ, ROM — Read Only Memory) предназначено для хранения неизменяемой (постоянной) программной и справочной информации; позволяет оперативно только считывать информацию, хранящуюся в нем (изменить информацию в ПЗУ нельзя); Специальная память К устройствам специальной памяти относятся постоянная память (ROM), перепрограммируемая постоянная память (Flash Memory), память CMOS RAM, питаемая от батарейки, видеопамять и некоторые другие виды памяти. Постоянная память (ПЗУ, англ. ROM, Read Only Memory — память только для чтения) — энергонезависимая память, используется для хранения данных, которые никогда не потребуют изменения. Содержание памяти специальным образом «зашивается» в устройстве при его изготовлении для постоянного хранения. Из ПЗУ можно только читать. Перепрограммируемая постоянная память (Flash Memory) — энергонезависимая память, допускающая многократную перезапись своего содержимого. Прежде всего в постоянную память записывают программу управления работой самого процессора. В ПЗУ находятся программы управления дисплеем, клавиатурой, принтером, внешней памятью, программы запуска и остановки компьютера, тестирования устройств. Важнейшая микросхема постоянной или Flash-памяти — модуль BIOS. Роль BIOS двоякая: с одной стороны, это неотъемлемый элемент аппаратуры, а с другой стороны — важный модуль любой операционной системы. BIOS (Basic Input/Output System — базовая система ввода-вывода) — совокупность программ, предназначенных для автоматического тестирования устройств после включения питания компьютера и загрузки операционной системы в оперативную память. Разновидность постоянного ЗУ — CMOS RAM (рис. 4.9). CMOS RAM — это память с невысоким быстродействием и минимальным энергопотреблением от батарейки. Используется для хранения информации о конфигурации и составе оборудования компьютера, а также о режимах его работы
Содержимое CMOS изменяется специальной программой Setup, находящейся в BIOS (англ. Set-up — устанавливать, читается «сетап»). Для хранения графической информации используется видеопамять. Видеопамять (VRAM) — разновидность оперативного ЗУ, в котором хранятся закодированные изображения. Это ЗУ организовано так, что его содержимое доступно сразу двум устройствам — процессору и дисплею. Поэтому изображение на экране меняется одновременно с обновлением видеоданных в памяти. Контрольные вопросы по теме 1
Кем и когда была создана первая счетная машина, выполняющая арифметические действия.
Какую машину можно считать первой вычислительной машиной.
Когда была создана первая ЭВМ.
Расскажите о вкладе фирмы IBM в создании ЭВМ.
Кем и когда был создан первый микропроцессор.
Когда и кем был создан первый микрокомпьютер (ПК).
Расскажите о вариантах классификации ЭВМ.
Кто сформулировал основные идеи построения современных ЭВМ.
Расскажите о принципах программного управления Дж.фон Неймана.
Перечислите основные части компьютера.
Что представляет собой процессор.
Общие сведения об оперативной памяти.
Расскажите о назначении и делении периферийных устройств.
В какой системе счисления работает компьютер. Что такое бит, байт, ячейка памяти и регистры.
Расскажите о различных способах представления чисел.
Расскажите о ячейках памяти, портах и регистрах.
Назовите названия и характеристики первых ПК.
Перечислите характерные черты любого РС-совместимого компьютера.
Расскажите о составе системного блока.
Объясните понятие чипсет, что входит в её состав.
Расскажите об основной памяти компьютера.
Расскажите о специальной памяти компьютера.
1. Основные понятия
Основной компонент компьютера – процессор, точнее центральный процессор (Central Processing Unit, CPU). Подобные процессоры находятся не только в PC (Personal Computer) – в принципе процессором оборудована каждая современная стиральная машина или микроволновая печь. CPU регулирует, управляет и контролирует рабочий процесс. Он находится в постоянном взаимодействии с другими элементами материнской платы до тех пор, пока PC включен.
Процессор – блок компьютера, выполняющий арифметические и логические операции, управляющий работой всех его составных частей.
В области PC имеется однозначный лидер на рынке – фирма Intel, которая контролирует около 80% рынка микропроцессоров для PC. Наиболее известны еще две фирмы: AMD и Cyrix.
Микропроцессоры отличаются друг от друга двумя основными характеристиками – типом (моделью) и тактовой частотой.
Процессоры, как и все электрические схемы, получили обозначение типов. Для PC обозначение CPU младших поколений начинается с 80, затем следуют две или три цифры, которые при необходимости дополняются буквами или дальнейшими цифрами, указывающими тактовую частоту процессора. Тактовая частота задается генератором тактовых импульсов.
Генератор тактовых импульсов – устройство, генерирующее последовательность электрических импульсов.
Частота генератора тактовых импульсов является одной из основных характеристик ПК и во многом определяет скорость его работы, ибо каждая операция машины выполняется за определенное количество тактов. Разные процессоры выполняют одну и ту же операцию за разное количество тактов.
Определение типа процессора чаще всего начинается с сокращения, идентифицирующего изготовителя. Например: i80486DX-50 обозначает процессор типа 80486, изготовленный фирмой Intel и работающий с тактовой скоростью 50 МГц. (Герц – единица частоты. Частота в 1 Герц означает, что производится одно действие в секунду.) Микросхемы фирмы Advanced Micro Devices обозначаются префиксом AMD, a процессоры Cyrix маркируются как СХ. При запуске PC эти буквы появляются на экране монитора перед номером типа процессора.
Производительность – относительная эффективность работы компьютера или устройства, определяемая с помощью тестов.
Производительность CPU характеризуется следующими основными параметрами:
• степенью интеграции;
• внутренней и внешней разрядностью обрабатываемых данных;
• тактовой частотой;
• памятью, к которой может адресовываться CPU.
Степень интеграции микросхемы (чипа) показывает, сколько транзисторов может в нем уместиться. Для процессора Pentium (80586) Intel – это приблизительно 3 млн. транзисторов на 3,5 см2.
Внутренняя разрядность данных. Существенной характеристикой процессора является количество бит, которое он может обрабатывать одновременно внутри CPU. Для арифметических команд, выполняющихся CPU, важно, сколько бит могут обрабатываться одновременно: 16, 32 или 64.
Внешняя разрядность данных. Увеличение производительности системы вследствие увеличения количества бит, обрабатываемых внутри процессора, ощущалось бы, если бы другие элементы материнской платы смогли справиться с таким обменом данными с CPU.
По этой причине материнская плата с процессором 386SX (32-битная внутренняя разрядность и 16-битная внешняя) может работать порой так же, как и плата с процессором 386DX (32-битная разрядность, как внутренняя, так и внешняя).
Тактовая частота. Конструктивные элементы, расположенные на материнской плате, работают строго с указанным тактом, чтобы координировать друг с другом отдельные шаги работы. Также в процессе работы CPU выполняет определенные операции (запись, чтение, обработка данных и т.д.) за точно отведенные единицы времени, что необходимо для синхронизации процесса. Очевидно, что обработка информации тем быстрее, чем выше тактовая частота CPU. Но при этом следует обратить внимание и на другие микросхемы. Они должны продуцировать в CPU данные с такой тактовой частотой, чтобы, как говорят, не затопить его в потоке данных или не заставить ждать новой информации. Конечно, имеются процессоры, которые могут работать с более высокой частотой. Однако только заменой кварцевого генератора опасно заставлять работать всю материнскую плату с более высокой тактовой частотой, потому что, если даже CPU и “выживет”, то этого, возможно, не вынесут другие составные элементы платы.
Адресация памяти. CPU находится в прямом контакте с оперативной памятью PC. Данные, которые обрабатывает CPU, должны временно располагаться в RAM и для дальнейшей обработки снова могут быть востребованы из памяти. Для CPU 8086/88 область адресации располагается максимум до 1 Мбайт. Процессор 80486 может обеспечить доступ уже к 4 Гбайт памяти.
Реальный режим (Real Mode) соответствует возможностям CPU 8086/8088, позволяя адресовать не более 1 Мбайт памяти.
Чтобы поддержать совместимость с ранее разработанными программами, процессоры 286 и даже Pentium работают под управлением операционной системы MS DOS в реальном режиме и используют при этом, конечно же, минимальные возможности процессора.
Защищенный режим (Protected Mode) появился впервые в CPU 80286. В этом режиме CPU может адресовать до 16 Мбайт физической и до 1 Гбайта виртуальной памяти. Если физическая память полностью загружена, то “непоместившиеся” данные располагаются на винчестере. Таким образом, CPU работает не с реальными, а с виртуальными адресами, которые управляются через специальные таблицы, с тем чтобы информацию можно было найти (или снова записать). Эту память называют еще виртуальной памятью, потому что фактически она не существует.
Кроме того, в защищенном режиме возможна поддержка мультизадачного режима (Multitasking). При этом CPU может выполнять различные программы в выделенные кванты времени, выпадающие на каждую из программ (пользователю же кажется, что программы выполняются одновременно).
Виртуальный режим. Впервые, начиная с процессора 386, CPU способны эмулировать работу нескольких процессоров 8086 (максимум 256) и тем самым обеспечить многопользовательский режим таким образом, что на одном PC могут быть запущены одновременно даже различные операционные системы. Естественно, увеличивается и возможное количество выполняемых приложений.
2. Развитие моделей процессоров и их характеристик
Первый 16-разрядный процессор i8086 фирма Intel выпустила в 1978 году. Частота – 5 Мгц, позже появились процессоры с частотой 8 и 10 МГц. Технология 3 мкм, 29 000 транзисторов. Адресуемая память 1 Мбайт. Через год появился i8088 – тот же процессор, но с 8-разрядной шиной данных. С него началась история IBM PC, неразрывно связанная со всем дальнейшим развитием процессоров Intel. Массовое распространение и открытость архитектуры IBM PC привели к лавинообразным темпам появления нового программного обеспечения, разрабатываемого крупными, средними и мелкими фирмами, а также энтузиастами-одиночками. Технический прогресс тогда и сейчас был бы немыслим без развития процессоров, но, с учетом огромного объема уже существующего программного обеспечения для PC, уже тогда возник принцип обратной программной совместимости – старые программы должны работать на новых процессорах. Таким образом, все нововведения в архитектуре последующих процессоров должны были пристраиваться к существующему ядру.
Процессор i80286, знаменующий следующий этап архитектуры, появился только в 1982 году. Он уже имел 134 000 транзисторов (технология 1,5 мкм) и адресовал до 16 Мбайт физической памяти. Его принципиальные новшества – защищенный режим и виртуальная память размером до 1 Гбайт – не нашли массового применения; процессор большей частью использовался как очень быстрый 8088.
Рождение 32-разрядных процессоров (архитектура IA-32) ознаменовалось в 1985 году моделью i80386 (275 000 транзисторов, 1,5 мкм). Разрядность шины данных (как и внутренних регистров) достигла 32 бит, адресуемая физическая память – 4 Гбайт. Появились новые регистры, новые 32-битные операции, существенно доработан защищенный режим, были введены виртуальный режим и страничное управление памятью. Процессор нашел широкое применение в PC; на его “благодатной почве” стал разрастаться Microsoft Windows с приложениями. С этого времени стала заметна тенденция “положительной обратной связи”: на появление нового процессора производители ПО реагируют выпуском новых привлекательных продуктов, последующим версиям которых становится тесно на новом процессоре. Появляется более производительный процессор, но и его ресурсы быстро признаются недостаточными.
История процессора 80386 повторила судьбу 8086/8088: первую модель с 32-разрядной шиной данных (впоследствии названной 386DX) сменил 386SX с 16-разрядной шиной. Он довольно легко вписывался в архитектуру PC AT, ранее базировавшуюся на процессоре 80286.
Процессор Intel 486DX создан в 1989 году. Транзисторов – 1,2 миллиона, технология 1 мкм. От процессора 80386 существенно отличается размещением на кристалле первичного кэша и встроенного математического сопроцессора – FPU (предыдущие процессоры использовали внешние сопроцессоры х87). Далее появились его разновидности, отличающиеся наличием или отсутствием сопроцессора, применением внутреннего умножения частоты, политикой кэширования и другим. Тогда же Intel занялась энергосбережением, что отразилось и в линии 386 – появился процессор Intel386SL.
В 1993 году были созданы первые процессоры Pentium с частотой 60 и 66 МГц – 32-разрядные процессоры с 64-разрядной шиной данных, транзисторов – 3,1 миллиона, технология 0,8 мкм, питание 5 В. От 486 процессор Pentium принципиально отличается суперскалярной архитектурой – способностью за один такт выпускать с конвейеров до двух инструкций.
Процессоры Pentium с частотой 75, 90 и 100 МГц, появившиеся в 1994 году, представляли второе поколение этих процессоров. При почти том же числе транзисторов они выполнялись по технологии 0,6 мкм, что позволило снизить потребляемую мощность. От первого поколения они отличались внутренним умножением частоты, поддержкой мультипроцессорных конфигураций и другим типом корпуса. Появились версии (75 МГц в миниатюрном корпусе) для мобильных применений (блокнотных PC). Процессоры Pentium второго поколения стали весьма популярными в PC. В 1995 году были выпущены процессоры на 120 и 133 МГц, выполненные уже по технологии 0,35 мкм (первые процессоры на 120 МГц делались по технологии 0,6 мкм). 1996 год называют годом Pentium – появились процессоры на 150, 166 и 200 МГц, и Pentium стал рядовым процессором в массовых PC.
Параллельно с Pentium развивался и процессор Pentium Pro, который отличался “динамическим исполнением”, направленным на увеличение числа параллельно исполняемых инструкций. Кроме того, в его корпусе разместили вторичный кэш, работающий на частоте ядра, – для начала объемом 256 Кбайт. Однако на 16-разрядных приложениях, а также в среде Windows 95 он был ничуть не быстрее Pentium. Процессор содержит 5,5 миллионов транзисторов ядра и 15,5 миллионов транзисторов для вторичного кэша объемом 256 Кбайт. Первый процессор с частотой 150 МГц появился в начале 1995 года (технология 0,6 мкм), а уже в конце года были достигнуты частоты 166, 180 и 200 МГц (технология 0,35 мкм), а кэш увеличен до 512 Кбайт.
После долгих обещаний в начале 1997 года фирма Intel выпустила процессоры Pentium ММХ. Технология ММХ (MultiMedia extensions, мультимедийные расширения) предполагает параллельную обработку группы операндов одной инструкцией. Технология ММХ призвана ускорить выполнение мультимедийных приложений, в частности операций с изображениями и обработки сигналов. Ее эффективность вызывает споры в среде разработчиков, поскольку выигрыш в самих операциях обработки компенсируется проигрышем на дополнительных операциях упаковки-распаковки. Кроме того, ограниченная разрядность ставит под сомнение применение ММХ в декодерах MPEG-2, в которых требуется обработка 80-битных операндов. Кроме ММХ, эти процессоры, по сравнению с обычным Pentium, имеют удвоенный объем первичного кэша и некоторые элементы архитектуры, позаимствованные у Pentium Pro, что повышает производительность Pentium ММХ на обычных приложениях. Процессоры Pentium ММХ имеют 4,5 миллиона транзисторов и выполнены по технологии 0,35 мкм. Развитие линейки моделей Pentium ММХ сейчас остановилось. Последние достигнутые тактовые частоты – 166, 200 и 233 МГц. Для мобильных применений (блокнотных ПК) процессоры под кодовым названием Tillamook выпускались по технологии 0,25 мкм, тактовая частота достигла 266 МГц при уменьшенной потребляемой мощности.
В мае 1997 года появился процессор Pentium II. Он представляет собой слегка урезанный вариант ядра Pentium Pro с более высокой внутренней тактовой частотой, в которое ввели поддержку ММХ. Трудности размещения вторичного кэша и процессорного ядра в корпусе одной микросхемы преодолели простым способом – кристалл с ядром (processor core) и набор кристаллов статической памяти и дополнительных схем, реализующих вторичный кэш, разместили на небольшой печатной плате-картридже. Первые процессоры имели частоту ядра 233, 266 и 300 МГц (технология 0,35 мкм), летом 1998 года была достигнута частота 450 МГц (технология 0,25 мкм), причем внешняя тактовая частота с 66 МГц повысилась до 100 МГц. Вторичный кэш этих процессоров работает на половине частоты ядра.
В 1999 году появились процессоры Pentium III. Частота ядра подбирается к 1 ГГц, частота системной шины – 100 и 133 МГц. На базе Pentium II появилось семейство “облегченных” процессоров Celeron, сначала без вторичного кэша, а потом и с интегрированным вторичным кэшем размером 128 Кбайт. Для мощных компьютеров имеется семейство процессоров Хеоn, которое охватывает и Pentium II, и Pentium III. Для этих процессоров характерен больший объем вторичного кэша, поддержка более чем двухпроцессорных конфигураций и более крупный картридж. Есть процессоры Pentium II/III и для мобильных применений.
Конечно, перечисленными моделями не исчерпывается весь мировой ассортимент микропроцессоров. Это только представители семейства процессоров, имеющих обобщенное название х86. Ряд фирм (например, AMD, Cyrix, IBM) выпускает процессоры, совместимые с перечисленными процессорами Intel и имеющие свои характерные особенности. Обычно они слегка отставали от изделий Intel, выпускаемых в то же время. Однако процессор К7 от AMD изменил ситуацию. Ряд фирм (DEC, Motorola, Texas Instruments, IBM) имеет разработки процессоров, существенно отличающиеся от семейства х86; есть другие классы процессоров и у Intel. Среди них присутствуют и гораздо более мощные процессоры, относящиеся как к RISC, так и к CISC архитектуре.
Вопросы:
1. Какие функции выполняет процессор?
2. Что является главными характеристиками микропроцессора?
3. Дайте определение генератора тактовых импульсов?
4. Какими параметрами характеризуется производительность процессора? Охарактеризуйте их.
5. В каком году был выпущен первый микропроцессор фирмы Intel?
6. В каком году был выпущен первый микропроцессор Pentium фирмы Intel?
7. Дайте краткую характеристику развития моделей процессоров?