Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
архитектура и структура компьютера
При рассмотрении компьютерных устройств принято различать их архитектуру и структуру.
Архитектурой компьютера называется его описание на некотором общем уровне, включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя.
Структура компьютера — это совокупность его функциональных элементов и связей между ними. Элементами могут быть самые различные устройства — от основных логических узлов компьютера до простейших схем. Структура компьютера графически представляется в виде структурных схем, с помощью которых можно дать описание компьютера на любом уровне детализации.
Наиболее распространены следующие архитектурные решения.
· Классическая архитектура (архитектура фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд — программа (рис. 1). Это однопроцессорный компьютер. К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной (рис. 4). Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью.
· Многопроцессорная архитектура. Наличие в компьютере нескольких процессоров означает, что параллельно может быть организовано много потоков данных и много потоков команд. Таким образом, параллельно могут выполняться несколько фрагментов одной задачи. Структура такой машины, имеющей общую оперативную память и несколько процессоров, представлена на рис. 3.
Рис. 2. Архитектура многопроцессорного компьютера
Многомашинная вычислительная система. Здесь несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). Каждый компьютер в многомашинной системе имеет классическую архитектуру, и такая система применяется достаточно широко. Однако эффект от применения такой вычислительной системы может быть получен только при решении задач, имеющих очень специальную структуру: она должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе.
Преимущество в быстродействии многопроцессорных и многомашинных вычислительных систем перед однопроцессорными очевидно.
·Архитектура с параллельными процессорами. Здесь несколько АЛУ работают под управлением одного УУ. Это означает, что множество данных может обрабатываться по одной программе — то есть по одному потоку команд. Высокое быстродействие такой архитектуры можно получить только на задачах, в которых одинаковые вычислительные операции выполняются одновременно на различных однотипных наборах данных. Структура таких компьютеров представлена на рис. 3.
Рис. 3. Архитектура с параллельным процессором
В современных машинах часто присутствуют элементы различных типов архитектурных решений. Существуют и такие архитектурные решения, которые радикально отличаются от рассмотренных выше.
Рис. 4. Общая структура персонального компьютера с подсоединенными периферийными устройствами.
Физически магистраль представляет собой многопроводную линию с гнездами для подключения электронных схем. Совокупность проводов магистрали разделяется на отдельные группы: шину адреса, шину данных и шину управления.
Периферийные устройства (принтер и др.) подключаются к аппаратуре компьютера через специальные контроллеры (адаптеры) — устройства управления периферийными устройствами.
Контроллер — устройство, которое связывает периферийное оборудование или каналы связи с центральным процессором, освобождая процессор от непосредственного управления функционированием данного оборудования.
Технические характеристики аппаратных платформ.
Процессоры
Основные архитектурные понятия
Процессором называется устройство способное выполнять программный код и определяющее основные функции компьютера по обработке информации. Конструктивно, процессоры могут выполняться как в виде одной большой монокристальной интегральной микросхемы – чипа, так и в виде нескольких микросхем, блоков электронных плат и устройств. В настоящее время, микропроцессоры и процессоры вмещают в себе миллионы транзисторов и других элементов электронной логики и представляют сложнейшие высокотехнологичные электронные устройства. Персональный компьютер содержит в своем составе довольно много различных процессоров. Они входят в состав систем ввода/вывода контроллеров устройств. Каждое устройство (системная шина, оперативная память, интерфейсы накопителей информации, видеоадаптеры, звуковые адаптеры, клавиатура, периферийные устройства и др.) обслуживается своим собственным процессором или процессорами. Однако, архитектуру и конструктивное исполнение персонального компьютера определяет процессор или процессоры, контролирующие и обслуживающие системную шину и оперативную память, и, что более важно, выполняющие объектный код программ. Такие процессоры принято называть центральными или главными процессорами (Central Point Unit – CPU, Main processor). Центральные процессоры проектируются специально для разработки типовых моделей вычислительных устройств и устройств связи. На основе архитектуры центральных процессоров строится архитектура материнских плат, и проектируется архитектура и конструкция компьютера.
Главные процессоры персональных компьютеров IBM выпускаются различными фирмами-производителями, но имеют сходную базовую архитектуру микро-процессоров фирмы Intel (INTegrated ELectronics) и поддерживают на аппаратном и программном уровне их систему команд и организацию. Основными характеристиками центральных процессоров являются:
· Тип архитектуры или серия (Intel x86, Intel Pentium, Pentium overdrive, RISC …)
· Система поддерживаемых команд (standard 86/88, 286, 386, 486, Pentium,( Pentium2-4),MMX) и адресации (real mode, protected mode, virtual mode, EMS, paging).
· Разрядность (бит)
· Тактовая частота (мгц)
· Величина питающего напряжения (Вольт)
· Гнездо для процессора (Socket 7, Slot1 и др.)
· КЭШ
Тип архитектуры, как правило, определяется фирмой производителем оборудования. Все крупнейшие фирмы, производящие электронное оборудование для IBM-PC-совместимых компьютеров и выпускающие свои типы центральных процессоров вносят изменения в базовую архитектуру процессоров серии Intel x86 или разрабатывают свою. С типом архитектуры тесно связан набор поддерживаемых команд или инструкций, и их расширений. Эти два параметра, в основном, определяют качественный уровень возможностей персонального компьютера и в большой степени уровень его производительности.
Разрядность центрального процессора определяет его поколение и принципиально влияет на скорость передачи информации между другими устройствами и процессором. Первые процессоры серии Intel x86 имели разрядность 8 бит и могли передавать и принимать информацию по одному байту. Современные микро-процессоры персональных компьютеров имеют разрядность 32 бита для передачи информации внешним устройствам и 64 бита – для внутренних операций с информаций.
Тактовая частота процессора определяет минимальный квант времени за который процессор выполняет некоторую условную элементарную инструкцию. Тактовые частоты измеряются в мегагерцах и определяют количественные характеристики производительности компьютерных систем в целом. Чем больше (выше) тактовая частота, тем быстрее работает центральный процессор. В настоящее время технология производства центральных процессоров с высокой производительностью предусматривает их работу на очень высоких тактовых частотах, вследствие чего, устройства необходимо принудительно охлаждать. Для принудительного охлаждения процессоров используются пассивные системы – в виде радиаторов и активные системы – в виде радиаторов с вентиляторами.
3.2 Архитектура системы команд. Классификация процессоров (CISC и RISC)
Термин "архитектура системы" часто употребляется как в узком, так и в широком смысле этого слова. В узком смысле под архитектурой понимается архитектура набора команд. Архитектура набора команд служит границей между аппаратурой и программным обеспечением и представляет ту часть системы, которая видна программисту или разработчику компиляторов. Следует отметить, что это наиболее частое употребление этого термина. В широком смысле архитектура охватывает понятие организации системы, включающее такие высокоуровневые аспекты разработки компьютера как систему памяти, структуру системной шины, организацию ввода/вывода и т.п.
Двумя основными архитектурами набора команд, используемыми компьютерной промышленностью на современном этапе развития вычислительной техники являются архитектуры CISC и RISC.
Лидером в разработке микропроцессоров c полным набором команд (CISC - Complete Instruction Set Computer) считается компания Intel со своей серией x86 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров. Для CISC-процессоров характерно:
· сравнительно небольшое число регистров общего назначения;
· большое количество машинных команд, некоторые из которых нагружены семантически аналогично операторам высокоуровневых языков программирования и выполняются за много тактов;
· большое количество методов адресации;
· большое количество форматов команд различной разрядности;
· преобладание двухадресного формата команд;
· наличие команд обработки типа регистр-память.
Основой архитектуры современных рабочих станций и серверов является архитектура компьютера с сокращенным набором команд (RISC - Reduced Instruction Set Computer). Зачатки этой архитектуры уходят своими корнями к компьютерам CDC6600, разработчики которых (Торнтон, Крэй и др.) осознали важность упрощения набора команд для построения быстрых вычислительных машин.
Такие компьютеры основаны на архитектуре, отделяющей команды обработки от команд работы с памятью, и делали упор на эффективную конвейерную обработку. Система команд разрабатывалась таким образом, чтобы выполнение любой команды занимало небольшое количество машинных тактов (предпочтительно один машинный такт). Сама логика выполнения команд с целью повышения производительности ориентировалась на аппаратную, а не на микропрограммную реализацию. Чтобы упростить логику декодирования команд использовались команды фиксированной длины и фиксированного формата.
Среди других особенностей RISC-архитектур следует отметить наличие достаточно большого регистрового файла (в типовых RISC-процессорах реализуются 32 или большее число регистров по сравнению с 8 - 16 регистрами в CISC-архитектурах), что позволяет большему объему данных храниться в регистрах на процессорном кристалле большее время и упрощает работу компилятора по распределению регистров под переменные. Для обработки, как правило, используются трехадресные команды, что помимо упрощения дешифрации дает возможность сохранять большее число переменных в регистрах без их последующей перезагрузки.
Развитие архитектуры RISC в значительной степени определялось прогрессом в области создания оптимизирующих компиляторов. Именно современная техника компиляции позволяет эффективно использовать преимущества большего регистрового файла, конвейерной организации и большей скорости выполнения команд. Современные компиляторы используют также преимущества другой оптимизационной техники для повышения производительности, обычно применяемой в процессорах RISC: реализацию задержанных переходов и суперскалярной обработки, позволяющей в один и тот же момент времени выдавать на выполнение несколько команд.
Следует отметить, что в последних разработках компании Intel (имеется в виду Pentium P54C и процессор следующего поколения P6), а также ее последователей-конкурентов (AMD R5, Cyrix M1, NexGen Nx586 и др.) широко используются идеи, реализованные в RISC-микропроцессорах, так что многие различия между CISC и RISC стираются. Однако сложность архитектуры и системы команд x86 остается и является главным фактором, ограничивающим производительность процессоров на ее основе.
3.3 Система команд. Методы адресации и типы данных
Команда — это описание элементарной операции, которую должен выполнить компьютер.
В общем случае, команда содержит следующую информацию:
· код выполняемой операции;
· указания по определению операндов (или их адресов);
· указания по размещению получаемого результата.
В зависимости от количества операндов, команды бывают:
· одноадресные;
· двухадресные;
· трехадресные;
· переменноадресные.
Команды хранятся в ячейках памяти в двоичном коде.
В современных компьютерах длина команд переменная (обычно от двух до четырех байтов), а способы указания адресов переменных весьма разнообразные. В адресной части команды может быть указан, например:
· сам операнд (число или символ);
· адрес операнда (номер байта, начиная с которого расположен операнд);
· адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда), и др.
Рассмотрим несколько возможных вариантов команды сложения (англ. add — сложение), при этом вместо цифровых кодов и адресов будем пользоваться условными обозначениями:
одноадресная команда add x (содержимое ячейки x сложить с содержимым сумматора, а результат оставить в сумматоре)
add
x
двухадресная команда add x, y (сложить содержимое ячеек x и y, а результат поместить в ячейку y)
add
x
y
трехадресная команда add x, y, z (содержимое ячейки x сложить с содержимым ячейки y, сумму поместить в ячейку z)
add
x
y
z
3.4 Структура и формат команд. Кодирование команд.
Все возможные преобразования дискретной информации могут быть сведены к четырем основным видам:
1) передача информации в пространстве;
2) хранение информации;
3) логические операции;
4) арифметические операции.
ЭВМ, являющаяся универсальным преобразователем дискретной информации, выполняет все указанные виды преобразований.
Обработка информации в ЭВМ осуществляется автоматически путем программного управления. Программа представляет собой алгоритм обработки информации, записанный в виде последовательности команд, которые должны быть выполнены машиной для получения решения задачи.
Команда представляет собой код, определяющий операцию вычислительной машины и данные, участвующие в операции. Команда содержит также в явной или неявной форме информацию об адресе, по которому помещается результат операции, и об адресе следующей команды.
Процесс выполнения программы состоит из отдельных машинных операций. В данном случае под операцией понимается преобразование информации, выполняемое машиной под воздействием одной команды. Содержанием машинной операции могут быть запоминание в памяти, передача, арифметическое или логическое преобразование машинных слов, а также некоторые вспомогательные процедуры.
По характеру выполняемых операций различают следующие основные группы команд:
1) команды арифметических операций для чисел с фиксированной и плавающей запятой;
2) команды десятичной арифметики;
3) команды логических операций;
4) команды передачи кодов;
5) команды ввода-вывода;
6) команды передачи управления;
7) команды задания режима работы машины.
В команде, как правило, содержатся не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся.
Код команды можно представить состоящим из нескольких частей или полей, имеющих определенное функциональное назначение при кодировании командной информации. Команда в общем случае состоит из операционной и адресной частей. В свою очередь, эти части могут состоять из нескольких полей.
Операционная часть содержит код операции, который задает вид операции. Адресная часть команды содержит информацию об адресах операндов и результата операции, а в некоторых случаях информацию об адресе следующей команды.
Структура команды определяется составом, назначением и расположением полей в команде. Форматом команды называют ее структуру с разметкой номеров разрядов (бит), определяющих границы отдельных полей команды, или с указанием числа бит в определенных полях.
Организации памяти и адресации.
МП I8008 имеет мегабайтовую память. Для того чтобы адресовать к такому количеству ячеек, необходим 20-разрядный указатель. Поскольку указатель команд IP, также как и все остальные регистры – указатели BX, SI, DI, BP и SP имеет 16 разрядов, МП не имеет прямого доступа сразу ко всей памяти. Эта задача решается с помощью сегментирования.
Организация сегмента.
Каждый сегмент памяти содержит до 64 кб(65536 байт). Начальный адрес сегмента может быть установлен прикладной программой и всегда должен начинаться с 16-байтовых границ. Базовый адрес сегмента получается делением действительного физического адреса начальной ячейки сегмента на 16. Эти базовые адреса содержаться в сегментных регистрах, так что МП одновременно может до четырёх однозначно определяемых сегментов. На расположение сегмента не накладывается никаких специальных ограничений, кроме одного: он должен быть на границы 16 байт (т. е. физический адрес начальной ячейки должен делиться на 16). Сегменты могут быть смежными, разделёнными, перекрываться частично или полностью. После того как сегмент определён, регистры- указатели могут быть использованы для адресного обращения к любому байту или слову в пределах этого сегмента. При такой организации адресации МП имеет прямой доступ только к 64 кб памяти, а к миллиону байтов может адресоваться лишь при помощи регистров-сегментов.
Так как МП I8088 имеет четыре регистра сегментов, в его памяти одновременно выделяются четыре адресуемых сегмента: командный сегмент, сегмент данных, дополнительный сегмент и стековый сегмент.
Командный сегмент представляет собой 64 – килобайтовую область памяти, содержащую машинные команды, которые выбираются УС и выполняются ИУ. Содержимое указателя команд соответствует перемещаемому адресу очередной, выполняемой в этом сегменте, команды.
Сегмент данных представляет собой 64 – килобайтовую область памяти, обычно используемую для запоминания программных данных, переменных и констант.
Дополнительный сегмент обеспечивает дополнительные 64 Кб памяти.
Стековый сегмент содержит стековую структуру емкостью до 64 Кб.
Можно писать программы, которые для хранения команд, переменных и констант, а так же для стека используют один и тот же сегмент памяти. Это достигается назначением во все регистры сегментов одного и того же базового адреса, так что все четыре сегмента будут перекрывать одну и ту же область физической памяти.
Сегментирование эффективно для развития модульного построения программного обеспечения и структурного программирования, где большие программы обычно разбивают на множество более мелких логических модулей.
Организация памяти.
Мегабайтовую память МП I8088 можно рассматривать как последовательность байтов, начинающуюся с физического адреса 00000Н, заканчивающуюся адресом FFFFFH.
Команды и программные данные могут быть записаны побайтно или словами в любой из этих адресов. Для запоминания 16 – битового слова или 32 – битового двойного слова используется следующее соглашение:
1. 16 – битовое слово всегда заносится в память так, что старший байт находится в ячейке с большим номером. Например, если шестнадцатеричное число 0235Н записано в ячейку 2800Н, то при этом сама ячейка 2800Н содержит число 35Н, а число 02Н записывается в ячейку 2801Н.
2. 32 – битовое двойное слово может быть использовано в качестве указателя для адресации байта или слова в любом сегменте памяти ЭВМ. Младшее слово адреса указывает перемещаемый адрес, а старшее слово – начальную ячейку (базовый адрес) сегмента. Два байта каждого слова заносятся в память согласно условию записи 16 - битового слова. Так как физический адрес определяется 20 – битовым кодом, то УС генерирует действительный адрес, соответствующий адресу в сегменте, сдвигал базовый адрес (старшее слово) влево на 4 разряда и прибавляя к нему 16 – битовый перемещаемый адрес (младшее слово). 32- битовый указатель заполнен 16 – ричным числом 04854000Н, которое задет физический адрес 08В50Н (сегмент 04В5Н, сдвинутый на 4 разряда влево), что дает 4В50Н, плюс перемещаемый адрес (4000Н).
Режимы адресации.
Операнды команд в программе, написанной на машинном языке, могут храниться в регистре общего назначения, в регистре сегмента или ячейке памяти. Операнды могут быть также заданы и в форме констант, являющихся частью команды. В МП I8088 на основе использования различных режимов адресации реализован ряд гибких методов выборки операндов, определяющих производительность и гибкость МП. Способы адресации МП I8088 используют регистровые и непосредственные операнды, прямую и косвенную адресацию, косвенную адресацию со смещением, базов – индексную адресацию со смещением, адресацию строковых данных и портов ввода – вывода.
Регистровые операнды.
Команды, содержащие только регистровые операнды, являются наиболее компактными и выполняются быстрее всех остальных типов команд. Это происходит вследствие того, что все операции с регистровыми операндами реализуются в ИУ ЦП без обращения к памяти ЭВМ. Регистры общего назначения могут быть источниками операндов, их приемниками или теми и другими одновременно. Сегментные регистры могут использоваться только либо как источники, либо как приемники операндов. Например, машинная команда 20D0 (AND AL, DL) выполняет операцию логического умножения AND содержимого регистров AL и DL и помещает результаты в регистр AL. Регистр DL является источником операнда, а регистр AL – приемником. Эта команда содержит только два байта и выполняется ЦП за 3 такта.
Непосредственные операнды.
Непосредственные операнды – это постоянные данные, определяемые как часть машинной команды. Данные могут быть 8 – или 16 – битовыми. Непосредственные операнды могут быть выбраны достаточно быстро, так как ЦП может получить их прямо из очереди команд без обращения к памяти ЭВМ. Непосредственные операнды могут быть заданы только как так называемые операнды – источники. Машинная команда более компактна, если приемник операнда – аккумулятор (регистр AL или AX).
Например, машинная команда 3С02 (СНР AL, 02) сравнивает содержимое регистра AL с шестнадцатеричным числом 02 и устанавливает определенные флаги в соответствии с результатом сравнения. Непосредственным операндом в этой команде является шестнадцатеричная константа 02. Эта команда занимает только два байта в памяти и может быть полностью выполнена ЦП за 4 такта.
Исполнительный адрес EA.
Перемещаемый адрес внутри сегмента, который ЦП вычисляет для операнда в памяти, называется исполнительным адресом ЕА операнда. Так как сегмент памяти содержит до65536 однобайтовых ячеек, перемещаемый адрес может быть представлен 16-ти разрядным двоичным числом без знака, что обеспечивает возможность доступа к каждому байту сегмента. В тех случаях, когда для определения операнда в памяти в коде машинной команды требуются два байта, группа битов второго байта команды сообщает ЦП, как вычисляется 16-ти битовый адрес необходимых операндов.
байт
слово
Reg=
000
AL
AX
Rm=
000
BX + SI
BX + SI + смещение
AL
AX
001
CL
CX
001
BX +DI
BX + DI + смещение
СL
CX
010
DL
DX
010
BP+ SI
BP + SI + смещение
DL
DX
011
BL
BX
011
BP + 05
BP +DI + смещение
BL
BX
100
AH
SP
100
SI
SI + смещение
AH
SP
101
CH
BP
101
DI
D + смещение
СH
BP
110
DH
SS
110
Direct
BP + смещение
DH
SI
111
BH
DS
111
BX
BX+ смещение
BH
DI
Поле Mod используется для того, чтобы различить, соответствуют ли операнды команд регистрам ЦП или ячейкам памяти. Величина XX имеет четыре возможных двоичных значения:00, 01, 10, 11. Значение11 в поле Mod указывает на то, что операндами машинных команд являются регистровые операнды. Двоичные значения 00, 01, и 10 задают типы адресам соответственно с нулевым, одно- или двухбайтовым смещением. Смещение может быть 8-ми битовым числом со знаком или 16-ти битовым без знака, которое включается в машинную команду, как ее часть и используется при вычислении исполнительного адреса.
Обозначение YYY соответствует трем битам, образующим поле Reg и используемым для указания регистра, содержащего операнд. Поле Reg идентифицирует 8-ми битовый регистр при байтовых операциях и 16-ти битовый регистр при работе со словами. В некоторых командах эти биты используются также для идентификации группы, к которой относится машинная команда (например команда AND в группе логических команд).
Три бита ZZZ формируют поле Rm. Вместе с полем Mod оно используется для идентификации определенного типа адресации. В команде допустима любая комбинация в полях Mod и Rm, что обеспечивает многообразие регистров адресации в МП.
Прямая адресация.
Простейшим типом адресации является простая; Она не использует не каких регистров. Исполнительный адрес ЕА берется непосредственно из 16-ти битового поля смещения машинной команды. Этот прямой адрес однозначно определяет байт или слова памяти, расположенные внутри сегмента.
Прямая адресация обычно используется для работы с простыми переменными или константами. В МП должно соблюдаться условие, согласно которому прямой адрес не выходит за пределы сегмента данных. Поскольку в программах прямой адрес может определяться относительно любого из четырех доступных сегментов, для его модификации возможно применение префиксных команд. При использовании прямой адресации в поле Mod содержится число 00, а в поле Rm- число 110.
Пусть, например, в программе, написанной на языке ассемблера, регистр сегмента данных DS содержит 04В5H, а байт 1400H текущего сегмента данных – символическое имя LOCI. Машинная команда C606001402 (MOV LOC1.02) предписывает заполнить по перемещаемому адресу 1400H сегмента данных шестнадцатеричное число 02. После смешения команды содержит число 1400H и интерпретируется как исполнительный адрес ЕА. Действительный физический 20-ти битовый адрес, определяемый YC, в этом случае соответствует 05F50H (4B50H+1400H).
Для прямой адресации используется два специальных вида адресации: относительную и абсолютную.
При относительной адресации поле смещения представляется 8-ми битовым числом со знаком. Исполнительный адрес ЕА при этом определяется в результате сложения содержимого поля смещения и регистра указателя команду IP (рис. 9, В).
Относительную адресацию используют для команд условных переходов, таких, как JE (переход по равенству), JO (переход по переполнению). При использовании относительной адресации байт адресации (Mod /Reg/ Rm) не требуется.
При абсолютной адресации часть команд представляет собой 32- битовый указатель, определяющий физический адрес в памяти МП. Младшее слово указателя рассматривается при этом как перемещаемый адрес сегмента, базовым адресом которого является старшее слово указателя (рис 9, с). При абсолютной адресации байт адресации (Mod/Reg/ Rm) также не требуется.
Косвенная адресация
При такой адресации в качестве исполнительного адреса EA выступает содержимое базового или индексных регистров (BX,SI или DI).
Вследствие этого одна и та же команда может быть обращена к множеству различных участков памяти простым изменением содержимого базового или индексного регистров, участвующего в косвенной адресации. При этом содержимое соответствующего регистра- BX,SI или DI- рассматриваются как исполнительный адрес внутри текущего сегмента данных. Прикладные программы могут использовать дополнительные префиксные команды для переназначения в другие сегменты памяти. С помощью адресации данного вида можно очень эффективно организовывать работу с различными участками компьютерной памяти.
При косвенной адресации существует одно исключение: для команды JMP (переход) и CALL ( вызов процедур) В качестве исполнителя может выступать содержимое любого из 16-битовых регистров общего назначения (AX, BX, CX, DX, SJ, DJ, BP, SP)/
Пусть, например, в программе на языке ассемблера регистр DS содержит число 14С5H. Если содержимым регистра SJ является число 28FFH, команда CG0410 (MOV [SI], 10H) заполняем шестнадцатеричное число10 в байте 28FFH сегмента данных. В этом случае содержимое регистра SJ служит исполнительным адресом. Действительный физический 20-битовый адрес памяти, соответствующий перемещаемому адресу 28FFH , при этом равен 1754FH (14C50H+28FFH).
Косвенная адресация со смещением.
При такой адресации используемый адрес ЕА определяется как сумма величины смещения и содержимого одного из регистров - базового или индексного(BX, BP, SJ, DJ) (рис.11).
Величина смещения может быть 8-битовым числом без знака. При использовании регистров BX, SJ или DJ за исполнительный адрес принимается перемещаемый адрес текущего сегмента данных, базовый адрес которого определяется регистром сегмента данных DS. При использовании регистра BP за исполнительный адрес принимается перемещаемый адрес текущего стекового сегмента, базовый адрес которого содержится в регистре сегмента стека SS. Поскольку в прикладных программах могут быть использованы префиксные команды, существует возможность переприсвоения исполнительных адресов относительно других сегментов памяти.
При использовании адресации денного типа поле Mod содержит двоичное число 01 и 10 в зависимости от того, является ли смещение 8-ми 16-битовым числом. Поле Rm представляется двоичным числом 100, 101, 110 или 111 в зависимости от того, какой используется регистр SJ, DJ, BP или BX соответственно.
Рассмотрим пример, в котором регистр сегмента содержит код 04В5Н. Если регистр ВР содержит число FF10Н, машинная команда С6870245 (MOV [BP+02],45H) запоминает шестнадцатеричное число 45 в байте FF12Н стекового сегмента. Величиной смещения является 8-битовое число со значением (02), занимающее в команде третий байт. Исполнительный адрес ЕА вычисляется в результате сложения величины смещения с содержимым регистра ВР (FF10Н+02Н). Это соответствует физическому адресу 14А62Н (4В50Н+FF12Н) памяти, который определяется УС. Поскольку при использовании регистра ВР описанная адресация обеспечивает доступ к стековому сегменту, это очень удобно для работы с конструкциями данных, использующих стек.
Базово-индексная адресация.
При такой адресации исполнительный адрес определяется в результате сложения содержимого базового регистра (ВХ или ВР) и индексного регистра (SJили DJ).
Благодаря возможности в процессе выполнения программы содержимого базового и индексного регистров, базово-индексная адресация является очень гибким средством доступа к самым различным участкам памяти. При использовании регистра ВХ исполнительный адрес определяется относительно сегмента данных с базовым адресом, содержащимся в регистре РS. При использовании регистра ВР исполнительный адрес определяется относительно сегмента стека, базовый адрес которого содержится в регистре SS. Прикладные программы могут включать префиксные команды, дающие возможность переприсвоить исполнительный адрес относительно других сегментов памяти компьютера.
При базово-индексной адресации поле Mod представлено числом 00. Поле Rm- двоичным числом 000, 001, 010 или 011 соответственно используемой адресации [BX+SJ], [BX+DJ], [BP+SJ] или [BP+DJ].
Пусть регистр сегмента данных содержит код 04В5Н. Если регистры ВХ и SJ содержат коды 1000Н и 1500Н соответственно, то машинная команда С60015 (MOV[BX+SJ],15Н) запомнит шестнадцатеричное число 15 в байте памяти, имеющим адрес 2500Н в сегменте данных. Исполнительный адрес вычисляется суммированием содержимого регистров BX и SJ (1000Н+1500Н). Этот адрес соответствует действительному физическому адресу памяти 07050Н(4В50Н+2500Н), устанавливаемому УС с шиной.
Базово-индексная адресация со смещением.
При такой адресации исполнительный адрес определяется сложением содержимого базового регистра (ВХ или ВР), индексного регистра (SJили DJ) и величины смещения.
Как отмечалось выше, величина смещения является частью команды и может быть 8-битовым числом со знаком или 16-битовым числом без знака. За исполнительный адрес принимается перемещаемый адрес текущего сегмента данных или стекового сегмента в зависимости от того, какой из регистров используется - ВХ или ВР соответственно. Прикладные программы могут содержать префиксные команды, благодаря которым можно переприсвоить исполнительные адреса относительно других сегментов памяти.
При базово-индексной адресации со смещением поле Mob представляет собой двоичное число 01 или 10 в зависимости от того, определяется ли смещение 8-ми или 16-битовыми числами. Поле Rm представляется точно так же, как и в случае базово-индексной адресации.
Рассмотрим пример, в котором регистр сегмента стека содержит число 04С5Н. Если регистр ВР или SJ содержит соответственно FF00Н и 0010Н, по машинной команде С642200АВ (Mov[BP+SJ+20Н], 0BH) шестнадцатеричное число 0В будет записано в ячейку FF30Н стекового сегмента. Смещением в этом случае является 8-битовое число со знаком (шестнадцатеричное число 20Н). Исполнительный адрес равен сумме величины смещения и содержимого регистров ВР и SJ(FF00H+0010H+20H) и соответствует действительному физическому адресу памяти 14В80Н(4С50Н+FF00Н+001Н+20Н), определяемому УС с шиной.
Адресации строк данных.
Строковые команды такие, как MOVS (переслать строку), CMPS (сравнить строку), LOPS(загрузить строку), CTOS (записать строку) и SCAS(скопировать строку), не используют ни один из рассмотренных выше типов адресации для выборки своих операндов. Содержимое индексных регистров (SJ и/или DJ) используется для непосредственного указания требуемого участка памяти. Регистр SJ всегда используется как указатель первого байта или слова строки-источника.
Регистр DJ используется как указатель первого байта или слова строки-приемника. Команда LODS предлагает использование регистра SJ в качестве указателя источника. Команды STOS и SCAS используют регистр DJ в качестве указателя приемника. Команды MOVS и СMPS используют оба регистра SJ и DJ. Перемещаемый адрес, находящийся в регистре DJ, всегда относится к текущему дополнительному сегменту. Для команд со строковыми данными могут быть определены и префиксные команды, которые позволяют переприсвоить сегмент данных (для команд LODS, MOVS и CMPS) или дополнительный сегмент (для команды SCAS) другому сегменту, расположенному в любой части памяти. При использовании строковой команды увеличение или уменьшение содержимого регистров SJ или DJ определяется состоянием (нулевое или единичное) флага направления. В зависимости от того, с чем работает команда с байтами или со словами, содержимое индексных регистров увеличивается/уменьшается соответственно на 1 или 2.
Адресация порта ввода-вывода.
Этот тип адресации обеспечивает доступ к устройствам ввода-вывода (в/в), присоединённым в/в области памяти МП. Область в/в МП I 8088 в дополнение к мегабайтовой памяти содержит ещё 64 КБ.
Эта область в/в не является сегментируемой и может выполняться как отдельно, так и вместе со всей памятью МП. В последнем случае уменьшается мегабайтовая память на 64 КБ, но обеспечивается дополнительная гибкость при программировании, так как все рассмотренные ранее типы адресации могут обеспечить доступ к этой области.
Каждый байт области в/в может быть назначен в качестве адреса однозначно определяемого порта в/в. Данные могут передаваться между накопителем и любым портом в/в, адресуемом внутри 64-килобайтовой области в/в. Регистр AL используется для передачи байта, а регистр АХ – для передачи слова. Для адресации порта в/в существуют команды IN (ввести из порта) и OUT (вывести в порт). Если номер порта находится в пределах 0-255 (десятичных чисел), он может быть определён частью машинной команды; если же номер порта превышает 255, то для его хранения используют регистр DX.
Работа со стековой памятью.
Стек – это область памяти, специально выделенная для временного хранения параметров или программных данных, необходимых для информационной связи программ и процедур. Максимальная ёмкость стековой памяти составляет 32К (32768) 16-битовых слов. Т. о. стек может полностью размещаться в одном сегменте памяти.
Поскольку существует только один регистр сегмента стека SS, хранящий начальный (базовый) адрес стека, в каждый момент времени можно обращаться только к одному стеку. Указатель стека SP используется для хранения адреса последнего члена последовательности (вершины стека), записанного в стек.
В большинстве случаев программист не должен следить за адресами действительного расположения программных данных в стеке. Такие команды, как PUSH (записать данные в стек), РОР (считать данные из стека), CALL (вызов процедуры), RET (возврат из процедуры) или IRET (выход из прерывания), автоматически изменяют содержимое указателя стека SP так, чтобы отслеживать адрес вершины стека.
Запись данных в стек называется операцией загрузки. При загрузке в стек нового числа содержимое указателя стека возрастает на 2, при этом полагают, что ячейка стека, содержавшая считанные числа, считается свободной и готовой для последующего использования. Физически же содержимое ячейки компьютерной памяти после операции считывания остаётся без изменений.
Команды PUSH (записать данные в стек) и РОР (считать данные из стека) позволяют организовать обмен данными между стеками и любым из 16-битовых регистров общего назначения или ячейками памяти.
Процедуры вызова и возврата, использующие стек.
Процедуры и подпрограммы позволяют многократно использовать фиксированную последовательность команд и данных различными программами, которые могут располагаться в любых участках памяти ПК. Для этого машинные команды CALL (вызов процедур) и RET (возврат из процедур) устанавливают стандартную форму передачи управления от программы к процедуре и возврат управления команде, следующей за командой CALL после выполнения процедуры.
Вызов и возврат внутри сегмента. Если физический адрес ячейки памяти, содержащей команду CALL, и начальная ячейка процедуры лежат внутри сегмента, то для передачи управления процедуре используется внутрисегментная команда CALL. Адрес возврата (адрес команды, следующей за командой CALL) загружается в текущий стек (определяемый указателем стека SP и регистром SS).
Последней командой выполняемой перед выходом из процедуры, должна быть команда RET (шестнадцатеричный машинный код – С3), по которой содержимое вершины стека (являющееся адресом возврата) считывается в указатель команд IP. Это обеспечивает передачу управления команде, следующей за командой CALL. В языке ассемблера процедура, выполненная внутрисегментным вызовом, определяется как NEAR.
Межсегментные вызовы и возвраты.
Программа может передавать управление процедуре, находящейся в произвольном месте памяти МП, используя межсегментную команду CALL. Выполняя её, процессор автоматически осуществляет следующие операции (рис.17):
• Указатель стека уменьшается на 2. Содержимое регистра CS, базовый адрес текущего командного сегмента, переносится в ячейку – вершину стека;
• Указатель стека вновь увеличивается на 2. В стек загружается перемещаемый адрес команды, следующей за командой CALL.
• Последней машинной командой из процедуры, вызванной межсегментной командой вызова, должна быть команда RET (код СВ.). В языке ассемблера процедуры, вызываемые командой межсегментного вызова, определяются как FAR. При осуществлении команды RET МП автоматически выполняет следующие операции
• Слово из вершины стека (определяемой указателем стека SP) считывается в указатель команд IP. Для определения новой вершины стека содержимое регистра SP увеличивается на 2;
• Слово, занимающее новую вершину стека, переписывается обратно регистр CS. Содержимое регистра SP вновь возрастает на 2.
• Таким образом, управление передаётся команде, следующей за командой CALL.
Вложенные процедуры вызова и возврата.
Программа может передавать управление процедуре, которая в свою очередь может вызывать другую процедуру, расположенную в произвольном месте памяти ЭВМ. В этом случае вторая процедура определяется как вложенная процедура вызова. Благодаря использованию стека, становятся возможными считывание всех адресов возвратов автоматически в требуемом порядке без каких-либо дополнительных программных сложностей и вставка произвольно чередующихся межсегментных и внутрисегментных вызовов без какой бы то ни было путаницы.
Использование стека для передачи переменной.
Хранение в стеке параметров или промежуточных результатов ведущей программы позволяет воспользоваться или при выполнении определяемой процедуры (программы). Во многих случаях операции, осуществляемые процедурой, могут выполняться непосредственно под данными, расположенными в стеке. Для указания данных, хранящихся в стеке, обычно используется регистр ВР. Вместе с командой RET может быть определено смещение для обхода области переменных в стеке, что позволяет при возврате передать контроль команде, следующей за командой CALL.
Прерывание работы микропроцессора.
Прерывания осуществляются аппаратными средствами, которые заставляют МП приостановить выполнение текущей программы и отреагировать на внешнее событие. Прерывание используется, прежде всего, для увеличения эффективности МП. Прерывание используется в качестве удобного средства, обеспечивающего доступ к аппаратному оборудованию и утилитным программам, контролируемым операционной системой. Прерывания дают возможность осуществлять операции ввода-вывода независимо от МП.
Поскольку быстродействие ЦП значительно выше, чтобы ЦП имел возможность выполнять другие программы или осуществлять более полезные функции, чем постоянный контроль за состоянием присоединённых к нему периферийных устройств. Когда же устройство ввода или вывода требует обслуживания со стороны ЦП, оно сообщает об этом МП формированием соответствующего сигнала, по которому может быть прервано выполнение текущей программы.
ЦП может игнорировать требование маскируемого прерывания и продолжать выполнять текущую программу. Это происходит тогда, когда флаг разрешения прерывания IF регистра флагов содержит 0 (прерывание невозможно) и маскируемые прерывания должны ждать обслуживания ЦП-м. ЦП может либо вообще не обработать маскируемое прерывание, либо обработать его через какое-то время (после того как обработает текущую программу). В этом случае флаг разрешения прерывания IF регистра флагов станет 1.
Если обрабатывается не маскируемое прерывание, то ЦП должен немедленно приостановить выполнение текущей программы и отреагировать на поступивший сигнал прерывания, не считаясь с положением флага разрешения прерывания. Немаскируемые прерывания имеют в ЭВМ наивысший приоритет и должны обслуживаться МП немедленно. При использовании ЭВМ в монопольном режиме немаскируемыми прерываниями являются фактически "катастрофы", такие, как ошибка памяти или сбой питания. При коллективном или мультипрограммном режиме пользования МК-ми немаскируемыми прерываниями могут быть сигналы системного времени на прекращение работы (например, для выполнения другой программы) или сигнал прекращения выполнения программы, которая нарушила границы, отведённой ей памяти (программные ошибки, приводящие к её неправильному выполнению).
Прежде, чем реагировать на прерывание, ЦП всегда завершает выполнение текущей машинной команды. Если машинная команда состоит из множества тактов (например, команды умножения и деления), требование на прерывание не выполняется до полной реализации машинной команды, и только после этого оно будет опознано и обслужено МП. Время, необходимое ЦП для того, чтобы отреагировать на требование прерывания, называется задержкой прерывания.
Каждому прерыванию соответствует код, по которому его различает МП. В системе может быть до 256 типов прерываний. Прерывания могут генерироваться требованиями устройств ввода-вывода, внешними по отношению к ЦП. Такого типа прерывания могут быть как немаскируемые, так и маскируемые. Прерывания могут быть внутренними, возникающими в прикладных программах при определённых условиях, таких как выполнение команды INTO (прерывание по переполнению), когда флаг переполнения OF равен 1.
ЦП автоматически присваивает текущую работу в следующих случаях:
1. при делении на 0 (прерывание из-за ошибки деления, тип 0);
2. при восполнении команды, когда флаг ловушки TF находится в состоянии 1 (пошаговый останов, прерывания 1);
3. при выполнении команды СС (16 –й код )(прерывании в заданной точке программы).
Внешние прерывания
В систему, основанную на МП I8088, может входить много соединённых с ним BY: принтер, терминал, ЗУ на гибких дисках, клавиатура и др. Ряд из них требует «внимания» со стороны МП лишь на непродолжительный срок; остальное время они могут функционировать без помощи ЦП.
Рассмотрим клавиатуру. Хорошая машинистка вводит до 400 символов в минуту. Это означает, что новый символ может поступать от клавиатуры в ЭВМ каждые 150 мс, а МП должен каждые 150 мс считывать и запоминать символ, введённый с клавиатуры.
Сам процесс считывания символа и запоминания его в память занимает 10 мкс. В этом примере преимущества от использования прерываний очевидны. Каждый раз, когда нажимается клавиша, устройство выдаёт в ЦП требование на прерывание. Чтобы ни выполнял МП, он постанавливает свою работу, и передаёт управление процедуре прерываний, обслуживающей клавишное устройство, которая содержит команды, необходимые для оценивания и занесения символа в компьютерную память.
Когда эта процедура завершается, ЦП продолжает свою работу с того места программы, где его застало прерывание. Благодаря механизму прерывания, процессор тратит менее 10 мкс на считывание каждого символа, вводимого с клавиатуры. А в течении времени, оставшегося от 150 мс интервала между двумя символами, вводимыми с клавиатуры, он может выполнять другие действия.
У МП есть три линии прерываний, RESET, NMI и INTR, по которым ВУ могут передавать свои запросы на обслуживание со стороны ЦП.
Запуск ЦП
При появлении запроса в линии RESET ЦП выполняем следующие действия:
• устанавливаем флаг IF в нулевое состояние. Это приводит к невозможности выполнения маскируемых и пошаговых прерываний;
• обнуляет регистры сегментов DS, ES, SS;
• обнуляет указатель команд IP;
• засылает шестнадцатеричное число FFFF в регистр сегмента команд.
ЦП начинает работу с обращения к ячейке памяти с адресом FFFFО. Эта ячейка содержит команду IMP, которая передает управление процедуре инициализации, запускающей МК.
Векторы прерываний служат для идентификации процедур, необходимых для обслуживания требования прерывания. Каждому внешнему требованию на прерывании может быть поставлен в соответствие код прерывания в переделах 0 – 255.
В ПК семейства I 8088 существует 256 векторов прерываний – по одному вектору на каждый тип прерывания.
Таблица векторов прерываний ПК фирмы IBM.
Таблица векторов прерываний занимает 1024 младших байта памяти – ячейки с физическими адресами от 0 до 03FFH – и имеют 256 входов в соответствии с количеством векторов.
Каждый вход таблицы является указателем двойного слова, содержащего начальный адрес процедуры, которая обеспечивает обслуживание требования на прерывание данного типа. Старшее 16-битовое слово каждого входа содержит базовый адрес сегмента, в котором находится процедура. Младшее 16-битовое слово каждого входа содержит перемещаемый адрес процедуры обслуживания внутри сегмента. Так как каждый вход таблицы занимает 4 байта, первая ячейка входа для прерывания данного типа может быть определена простым умножением кода типа прерывания на четыре.
Маскируемые прерывания. Это внешние требования, поступающие в МП по линии INTR. С помощью маскируемых прерываний можно засинхронизировать с ЦП наибольшее число BУ. При активизации линии INTER МП осуществляет различные действия, зависящие от состояния флага прерываний. Реализуемая в этот момент машинная команда всегда выполняется до конца, и только после этого начинаемая обработка запроса на прерывание.
Если флаг прерываний находится в нулевом состоянии (прерывание невозможно), то требования маскируемого прерывания игнорируются и ЦП продолжает выполнять очередную команду текущей программы. Если состояние флага прерываний единичное (прерывание разрешено), МП подтверждает требование прерывания и передает управление той программе, которая должна обслужить поступившее требование. Для выполнения требования маскируемого прерывания ЦП автоматически выполняет следующую последовательность действий:
1. генерируется сигнал прерывания внешнего прерывания. Этот сигнал сообщает ВУ о том, что его требование признано;
2. считывается код прерывания, поступивший на шину с ВУ;
3. содержимое регистров флагов записываемая в ячейку памяти, адрес которой хранится в текущей в текущей вершине стека, определяемой регистром SS и SP;
4. обнуляется флаг прерываний, что предотвращает возможность выполнения вновь поступающего маскируемого прерывания;
5. обнуляется флаг ловушки TF, что делает невозможным пошаговый режим;
6. В указатель команд IP засылаемая 16-битовое слово, находящееся по физическому адресу (TYPE*4) и (TYPE*4)+1, где TYPE – код типа прерывания;
7. в регистр сегмента команд CS засылается 16-битовое слово, находящееся в ячейках памяти с физическим адресом (TYPE*4)+2 и (TYPE*4)+3.
После выполнения операции 6) и 7) управление передается процедуре обслуживания прерывания, содержащей машинные команды, подходящие для удовлетворения требований маскируемого прерывания. Одной из таких команд, содержащихся в процедуре обслуживания, является команда STI (установить прерывание), которая устанавливает флаг прерываний в 1-е состояние и тем самым делает возможным выполнение новых требований, поступающих на INTER.
Немаскируемые прерывания. Это внешние прерывания, поступающие в МП по линии NMI. Обычно ими являются прерывания, сигнализирующие ЦП о внешних событиях особой важности, таких как отключение питания, сбой памяти и т.д. Немаскируемые прерывания признаются МП всегда независимо от состояния флага прерываний. Таким образом, немаскируемые прерывания имеют более высокий приоритет по сравнению с маскируемыми. Им присвоен тип 2. МП в ответ на требование немаскируемого прерывания выполняет следующую последовательность операций:
1. содержимое регистра флагов записывается в ячейку памяти (адрес который хранится в текущей вершине стека), определяемую регистрами SS и SP;
2. обнуляется флаг прерываний IF, что запрещает выполнение всех маскируемых прерываний;
3. обнуляется флаг ловушки TF, что делает невозможным пошаговый режим;
4. в стек загружается содержимое регистра сегмента команд CS;
5. в стек загружается содержимое указателя команд IP;
6. 16-битовое слово из ячейки с физическим адресом 00008Н записывается в регистр IP;
7. 16-битовое слово из ячейки с физическим адресом 0000АН записывается в регистр CS.
После выполнения операций 6 и 7 управление передается процедуре обслуживания прерываний, содержаний команды, которые необходимо выполнить для удовлетворения требования, поступившего по линии NMI.
Внутренние прерывания.
Эти прерывания обусловливаются прикладными программами, использующими команду INT. Они возникают также при некоторых условиях по сигналам в самом МП, например, при ошибках деления, переполнении и т. п. Внутренние прерывания аналогичны маскируемым, требования на которые поступают по линии INTR. Отличие заключается только в том, что МП реагирует на запросы внутренних прерываний независимо от состояния флага прерываний IF.
Код типа внутреннего прерывания может быть задан аппаратно либо представлен частью машинной команды. Если тип прерывания кодируется командой, то оно называется программным прерыванием. Последние являются удобным средством проверки процедур прерывания, составленных для обслуживания ВУ.
В ПК IBM программные прерывания используются для реализации возможностей, предоставляемых системным программным обеспечением BIOS. Так, например, команда INT 16Н может быть использована для чтения символа из буфера клавишного пульта ЭВМ.
Прерывания из-за ошибки деления.
МП автоматически генерирует прерывание типа 0 немедленно вслед за операциями DIV (деление) или IDIV (целочисленное деление) при возникновении следующих условий:
1. деление на 0;
2. если результат занимает больше 8 или 16 бит при делении соответственно 8- и 16-разрядных чисел.
Адрес процедуры обслуживания прерывания типа 0 должен определяться ячейками памяти с физическими адресами с 00000Н по 00003Н.
Прерывание в точке.
Прерывание в заданной точке (месте) программы используется в основном для отладки программы при её написании или тестировании. МП генерирует прерывание типа немедленно по завершении выполнения команды INT 3 (CCH). Шестнадцатеричный машинный код СС используется как команда прерывания в точке. Его можно вставить в любое место программы, где необходимо прервать его нормальное выполнение, и с помощью процедуры, обслуживающей это прерывание, отобразить критическую информацию, такую, как содержимое регистров ЦП и ячеек памяти. Поскольку минимальная смысловая часть команды на языке МП I8088 занимает один байт, машинный код ССН может заменить любую команду, обозначая тем самым точку программы, в которой необходимо осуществить прерывание.
Пошаговое прерывание. Если флаг ловушки регистра флагов находится в первом состоянии, то сразу после выполнения текущей команды осуществляется пошаговое прерывание. Этому прерыванию присвоен тип 1, и служит оно для покомандного выполнения программы. Прерывание типа 1 происходит автоматически после выполнения каждой машинной команды. При генерации прерывания МП автоматически загружает в стек содержимое регистра флагов (С 1-м флагом ловушки), после чего обнуляет флаги ловушки и прерываний. Таким образом, ЦП не переходит в пошаговый режим, пока выполняется сама процедура обслуживания прерывания, которая реализует различные диагностические операции, такие, как отображение содержимого регистра ЦП или определённых ячеек памяти и т. п. Последней машинной командой в процедуре обслуживания должна быть команда IRET(выход из прерывания). Этим восстанавливается прежнее 1-ое состояние флага ловушки, и по завершении следующей команды вновь генерируется прерывание типа 1.
В МП I8088 нет команд, которые непосредственно изменяли бы состояние флага ловушки. Но содержимое регистра флагов можно загрузить в стек, и состояние флага ловушки может быть изменено с помощью модификации образа флага, находящегося в стеке. Таким образом, для инициации пошагового режима могут быть использованы команды PUSHF(записать флаг в стек) и POPF(считать флаг из стека).
Состав персонального компьютера
Устройства в составе персонального компьютера IBM-PC
С*истемный блок, монитор, клавиатура и периферийные устройства
Внешний вид персонального компьютера может иметь самые разнообразные формы. Как правило, мы можем выделить несколько крупных объектов, оформленных в виде отдельных компонент соединенных кабелями или шлейфами, представляющих персональный компьютер непосредственно и периферийные компоненты. В зависимости от реализации исполнения и дизайна корпуса системного блока, монитора и клавиатуры они могут быть объединены в один или более общих корпусов и выполняться как совершенно самостоятельные отдельные элементы.
4.2 Системные блоки – корпуса персональных компьютеров
Системные блоки IBM РС выполняются в различных геометрических вариантах. Так по форме, расположению внутренних узлов, рабочему положению и размерам, обычно, выделяют корпуса с вертикальным и горизонтальным пространственным расположением элементов.
Корпуса с горизонтальным расположением делят на типы: нормальный (normal), малый (baby) и сверх малый (slim)
Корпуса с вертикальным расположением называют типом башня (tower) и делят на виды: 1 – малый (mini tower), 2 – средний (midi tower) и 3 – большой (big tower). Как правило, корпуса такого исполнения отличаются друг от друга видом передней панели и общей полезной высотой, в то время как, их ширина, длинна и глубина различаются незначительно. На передней панели системного блока располагаются некоторые элементы управления, а именно: тумблер-выключатель напряжения питания сети (Power), кнопка сброса – перезагрузки (Reset), индикатор обращения к жесткому диску, передние панели дисковых и ленточных устройств - накопителей информации со сменными носителями и другие комплектующие элементы и части устройств, требующие простого и частого доступа при использовании. Шина USB получила “второе рождение” с появлением Flash памяти большого объема и многих других устройств пользователя включая цифровые фотоаппараты и камеры. Для удобного и оперативного подключения их, на переднюю панель некоторые производители корпусов вынесли разъемы портов USB.
Внутри системного блока размещаются основные внутренние компоненты персонального компьютера: материнская плата – 3, платы адаптеров, интерфейсов, контроллеров устройств, карт, расширений и их разъемы – 10, дисковые накопители – 8 и 13, блок питания – 6, соединительные шлейфы, шнуры и кабели – 4, 7, вентилятор системы охлаждения внутренних элементов – 1, вентилятор и радиатор системы охлаждения центрального процессора – 2, слоты системной шины – 9, отверстие разъема клавиатуры – 11 и входной и выходной разъемы подключения питания – 12 и т.д.. Так как многие компоненты могут быть интегрированы на материнской плате, то не все они могут быть представлены как отдельные комплектующие элементы. Задняя панель, как правило, содержит панели плат расширений с разъемами, заглушки разъемов, вентиляционное отверстие вентилятора блока питания – 5 и др.
Корпус может быть выполнен из металла, пластика и комбинации того и другого. Как правило, все комплектующие элементы, расположенные внутри системного блока, крепятся изнутри к металлической раме – 3, состоящей из днища – 8, задней панели – 3 и передней панели – 7, на которую затем надевается кожух – 2. В передней панели имеется одно или несколько окон – 1, предназначенных для вывода на лицевую – переднюю часть управляющих панелей устройств, требующих постоянного доступа во время эксплуатации (магнитные, оптические, магнитооптические дисководы, ленточные накопители и др.). Задняя панель, также, имеет отверстия и окна для вывода на заднюю часть системы охлаждения блока питания – 4, разъемов интерфейсов периферийных устройств – 5, заглушек плат интерфейсных карт – 6.
4.3 Блок питания
Блок питания обеспечивает необходимыми напряжениями все системы аппаратуры персонального компьютера. Они располагаются внутри системного блока – корпуса компьютера и соединяются с материнской платой и другими устройствами при помощи шлейфов питания. Основные характеристики блоков питания компьютеров – это напряжения, их допустимые нагрузки и общая мощность. Стандартные блоки питания и аппаратура персональных компьютеров IBM имеют напряжения ± 12 и ± 5 вольт. Общая мощность, как правило, составляет до 300Ватт. При включении компьютера схемы блока питания проверяют параметры напряжений, и, если они в норме, выдают специальный сигнал наличия питания – PWRGOOD, появление которого приводит к возникновению сигнала сброс – RESET центрального процессора. Блоки питания оснащены системой защиты от перегрузок и отсутствия нагрузки, которая отключает устройство. При срабатывании систем защиты необходимо отключить компьютер, устранить причину перегрузки или недогрузки и включить его. Для охлаждения, блок питания имеет встроенный вентилятор.
Принципиальное различие между AT и ATX этими форм-факторами с точки зрения конструкции блока питания заключается в том, что БП в AT не поддерживает программно стандарт Расширенного Управления Питанием, в первую очередь управление отключением питания. Отключить его можно, лишь прекратив подачу напряжение на его вход. В БП формата ATX есть возможность программного отключения сигналом управления с материнской платы. Следует заметить, что на материнскую плату при этом подаётся определённое «дежурное» напряжение, прекратить подачу которого можно только отключив БП тумблером на нём, или вынув сетевой шнур из розетки.
Если внутри корпуса рассмотреть крепления под материнскую плату, то различить кроме всего форм-факторы можно по ее ориентации: прямоугольник в AT размещен длинной стороной вниз. Плата ATX обычно имеет большие размеры и вытянута по вертикали — это «стоящий» прямоугольник.
Третье отличие состоит в том, что разъёмы большинства портов ввода-вывода материнской платы ATX (COM, LPT, USB, а при наличии интегрированной аудио карты — и разъемы для нее) впаяны в оную, на корпусе имеется специальный вырез для них. К тому же, первоначально рассчитывалось, что вентилятор в блоке питания будет охлаждать процессор, но это условие на данный момент в большинстве случаев не выполняется в «самосборных» системах и практикуется только «серьезными» брендами.
Целесообразно ли починить сгоревший БП?
Вряд ли. Дело в том, что отремонтированный БП может легко выйти из строя, или просто не обеспечивать соответствие всем заводским характеристикам. По этой причине я полагаю, что применение такого БП можно найти лишь вне компьютера (в качестве достаточно мощного бытового источника питания), либо в недрах очень старого ПК — не так жалко, если что...
4.4 Материнская плата – основа архитектурного исполнения PC
Различные материнские платы
Материнские или системные платы представляют собой сложные электронные устройства – многослойные печатные монтажные платы с расположенными на них:
1. Наборами больших однокристальных электронных микросхем – чипов (центральный процессор, другими процессорами, интегрированными контроллерами устройств и их интерфейсами)
2. Микросхемами оперативной памяти и разъемами их плат
3. Микросхемами электронной логики
4. Простыми радиоэлементами (транзисторы, конденсаторы, сопротивления и др.)
5. Разъемами системной шины (стандартов ISA, EISA, VESA, PCI и др.)
6. Слотами для подключения плат расширений (видеокарт или видеоадаптеров, звуковых карт, сетевых карт, интерфейсов периферийных устройств IDE, EIDE, SCSI, AGP…)
7. Разъемами портов ввода/вывода (COM, LPT)
Материнские платы предназначены для размещения или подключений всех остальных внутренних устройств компьютера – служат своеобразной платформой, на базе которой строится конфигурация всей системы. Различные форм-факторы образуют группы материнских плат. Они диктуют комплектацию и пространственное расположение отдельных элементов на плате, а также некоторые стандарты системных устройств (таких как системная шина, контроллеры периферийных устройств и др.).
Системные платы могут включать в себя некоторые периферийные устройства, и их контроллеры (видеокарты или видеоадаптеры, звуковые карты, интерфейсы периферийных устройств, порты ввода/вывода, накопители информации и др.), которые, в таком случае, носят название интегрированных на материнской плате. Практически, интегрироваться может любое устройство, выпускаются персональные компьютеры материнские платы которых интегрируют даже дисковые накопители информации. Однако, интеграция на материнской плате различных комплектующих элементов не является положительным свойством в общем развитии архитектуры и применяется либо для общего удешевления системы, либо в случаях, когда определенные форм-факторы дальнейшего назначения диктуют свои условия (например, переносные компьютеры, компьютеры записные книжки и карманные компьютеры должны иметь минимальные размеры, в связи с чем их комплектующие элементы максимально интегрируются на материнских платах, которые предназначены только для такого типа компьютеров и часто, даже, не допускают дальнейшей модернизации).
Тип и характеристики различных элементов и устройств материнской платы, как правило, определяется типом и архитектурой центрального процессора (материнские платы на базе процессоров фирм Intel, AMD, Cyrix и др. – 8086/8088/80188, 286, 386, 486/586/686, Pentium, Pentium 2-4). Как правило, именно центральный процессор или процессоры, их семейство, тип, архитектура и исполнение определяют тот или иной вариант архитектурного исполнения материнской платы. По числу процессоров, составляющих центральный процессор, различают однопроцессорные и многопроцессорные (мультипроцессорные) материнские платы. Большинство персональных компьютеров являются однопроцессорными системами и комплектуются однопроцессорными материнскими платами. На вид и комплектацию материнских плат влияют, также, требуемые эксплуатационные характеристики и будущее назначение компьютера. Так, размеры материнской платы портативных компьютеров “записных книжек” будут значительно меньше стандартных, а их комплектация – шире, за счет интегрирования дополнительных элементов, например, видеокарт и интерфейсов дисковых накопителей, а материнских плат – предназначенных для комплектации серверов распределенных компьютерных сетей и баз данных – будут большого размера с минимальным числом интегрированных устройств.
Рассмотрим внешний вид и конфигурацию материнской платы на базе процессора Pentium с интегрированными периферийными устройствами:
1 – Разъем типа Intel ZIP Socket 7 для подключения центрального процессора типа Pentium, Cyrix 6x86 или AMD 5k86. 2 – Чип Intel 82430HX Pentium PCI Set. 3 – Разъем – слот системной шины стандарта PCI Local Bus. 4 – Разъем – слот системной шины стандарта ISA. 5 – Чипы кэш-памяти центрального процессора (256К Pipelined Burst Cache). 6 – Разъем – слот подключения 72-pin SIMM модулей – плат RAM памяти. 7 – Разъем интерфейса EIDE накопителей на жестких дисках (HD). 8 – Разъем интерфейса SCSI типа Adaptec AIC 7S50/7880 или Ultra Wide SCSI (AHA-2940uw). 9 – Разъем интерфейса дисководов – накопителей на гибких магнитных дисках (FD). 10 – Разъем последовательного порта типа 16550 Fast UART или совместимого. 11 – Разъем параллельного порта типа EPP/ECP . 12 – Чип интегрированного видеоконтроллера типа S3-Trio. 13 – Разъем типа SVGA для подключения монитора. 14 – Чипы видеопамяти типа EDO DRAM. 15 – Разъем подключения модуля MPEG. 16 – Чип интегрированного звукового контроллера типа Creative. 17 – Разъем подключения звуковых динамических колонок. 18 – Разъем подключения звукового синтезатора. 19 – Чип памяти ROM, содержащий базовую систему ввода/вывода (Basic Input/Output System – BIOS) . 20 – Чип контроллера портов ввода/вывода. 21 – Разъем типа PS/2 для подключения манипулятора “мышь” и клавиатуры . 22 – Разъемы типов AT и ATX для подключения питающего напряжения. 23 – Разъем портов типа Universal Serial Bus (USB) . 24 – Разъем шины LPB MPEG и TV-тюнера.
4.3.1 Системная шина
Системная шина персональных компьютеров IBM представляет собой набор проводников электрических сигналов и систему протоколов соединения устройств при помощи этих проводников. Тип и характеристики протоколов передачи информации по системной шине определяют скорость передачи информации между отдельными устройствами материнской платы. Системные шины персональных компьютеров стандартизируются как по числу контактов и разрядности (числу проводников, используемых для одновременной передачи данных), так и по протоколам общения устройств через проводники. Системная шина соединяет все устройства компьютера в единое целое и обеспечивает их взаимодействие, взаимоуправление и работу с центральным процессором.
В настоящее время, чаще всего, в персональных компьютерах используются системные шины стандартов ISA, EISA, VESA, VLB и PSI. На рисунке изображены четыре разъема шины PSI и три – ISA, расположенные на универсальной материнской плате. Все стандарты различаются как по числу и использованию сигналов, так и по протоколам их обслуживания. Взаимодействие устройств при помощи системной шины контролируется аппаратурой обслуживания шин и их контроллерами. Основа конструктивного исполнения шины входит в архитектуру материнской платы, на которой располагаются ее проводники и разъемы для подключения плат адаптеров устройств (видео !VideoCards>about, аудио !SoundCards>about, интерфейсов накопителей информации, интерфейсных портов ввода/вывода, внутренних модемов и т.п.) и расширений базовой конфигурации. Различают 16-ти и 32-х разрядные, высокопроизводительные (VESA, VLB и PSI с тактовой частотой более 16 МГц) и низкопроизводительные (ISA и EISA с тактовой частотой 8 и 16 МГц) системные шины. Также, шины, разработанные по современным стандартам (VESA, VLB и PSI) допускают подключение нескольких одинаковых устройств, а шина PSI обеспечивает самоконфигурируемость периферийного оборудования – поддержку стандарта Plug and Play исключающего ручную конфигурацию аппаратных параметров периферийного оборудования при его изменении или наращивании.
Общий принцип функционирования современных шин различных стандартов состоит в организации устройствами циклов шины во время которых устройства принимают и передают информацию. Цикл шины инициируется устройством – инициатором (master drive), которое определяет статус шины и если она не занята другими устройствами, устройство занимает ее и инициализирует интерфейсный контакт с другим устройством (slave drive) или устройствами – образует циклы шины. Таким образом, исключается ситуация конфликта шины или коллизии. В настоящее время, наиболее распространены протоколы, в которых взаимодействующие устройства равны в своих привилегиях использования шины, однако, продолжают существовать протоколы, предусматривающие одно устройство – инициализатор цикла шины – ведущее, и несколько ведомых устройств. При такой организации протоколов взаимодействия, чаще всего, устройством инициализатором является центральный процессор, а ведомыми – другие системные и периферийные устройства.
Особенности архитектуры персональных компьютеров IBM диктуют достаточно противоречивые принципы стратегии развития и разработки протоколов работы с устройствами. Принципы совместимости становятся противоположными принципам наивысшей производительности. Однако, универсальные стандарты системных шин персональных компьютеров IBM позволяют обслуживать 8-ми, 16-ти и 32-х разрядные устройства, производить выполнение циклов регенерации, циклов прямого доступа к памяти, осуществлять работу с 16-ти разрядным устройством как с 8-ми разрядным с использованием систем конвертирования, подключать различные периферийные устройства и др.. Все системные шины персональных компьютеров IBM реализованы по принципам открытой архитектуры, а технологии производства интегрированных контроллеров и их аппаратных и программных протоколов постоянно совершенствуются.
4.3.1.1 Шина ISA (Industrial Standard Architecture)
Шина, как известно, представляет из себя, собственно, набор проводов (линий), соединяющий различные компоненты компьютера для подвода к ним питания и обмена данными. В "минимальной комплектации" шина имеет три типа линий:
линии управления;
линии адресации;
линии данных.
Устройства, подключенные к шине, делятся на две основных категории - bus masters и bus slaves. Bus masters - это устройства, способные управлять работой шины, т.е инициировать запись/чтение и т.д. Bus slaves - соответственно, устройства, которые могут только отвечать на запросы. Правда, есть еще "интеллектуальные слуги" (intelligent slaves), но мы их пока не рассматриваем. Ну вот, собственно, и все, что нужно знать про шины для того, чтобы понять, о чем пойдет речь дальше.
в компьютерах IBM-AT ('Advanced Technology') в 1984 году была представлена новая версия шины, впоследствии названной ISA. Сохраняя совместимость со старыми 8-битными платами расширения, новая версия шины обладала рядом существенных преимуществ, как то:
добавление 8 линий данных позволило вести 16-битный обмен данными;
добавление 4 линий адреса позволило увеличить максимальный размер адресуемой памяти до 16 МВ;
были добавлены 5 дополнительных trigger-edged линий IRQ;
была реализована частичная поддержка дополнительных bus masters;
частота шины была увеличена до 8 MHz;
пропускная способность достигла 5.3 МВ/сек.
4.3.1.2 Шина PCI (Peripheral Component Interconnect bus)
шина имеет следующие преимущества:
1. процессоро-независимая (в отличие от VLbus),
2. может работать параллельно с шиной процессора, не обращаясь к ней за запросами. Например, процессор работает себе с кэшем или системной памятью, а в это время по сети на винчестер пишется информация.
Основные возможности шины следующие.
· Синхронный 32-х или 64-х разрядный обмен данными (правда, насколько мне известно, 64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров Intel Xeon, но, в принципе, за ней будущее). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям.
· Поддержка 5V и 3.3V логики. Разъемы для 5 и 3.3V плат различаются расположением ключей.
PCI Express
В отличие от PCI или PCI-X, шина PCI Express (или PCIE) является последовательной. То есть она использует небольшое число контактов. В то же время, частота работы шины намного выше частоты PCI, что обеспечивает высокую пропускную способность. К тому же, новая шина является масштабируемой и позволяет легко нарастить пропускную способность, объединяя несколько линий PCI Express. Спецификация описывает пять различных типов слотов: x16, x8, x4, x2 и x1.
PCI Express является двунаправленной связью точка-точка, то есть она обеспечивает одинаковую пропускную способность в обоих направлениях и не разделяет её с другими устройствами, как происходит в случае с параллельной шиной PCI. Из-за модульной архитектуры PCI Express производители материнских плат получили возможность распределить доступные ресурсы PCI Express в нужной им конфигурации. Общее количество линий PCI Express составляет 20, поэтому их можно распределить на один слот x16 PCIE и четыре слота x1 PCIE. Собственно, такая конфигурация и является самой распространённой у чипсетов intel9xx. Или можно реализовать пять портов x4 PCIE - для серверной системы среднего уровня. К тому же, шина PCI Express позволяет устанавливать оборудование от разных производителей.
Шина PCI Express заменит как обычную PCI, так и AGP. Хотя Intel не поддерживает AGP на новых чипсетах, мы думаем, что этот интерфейс продолжит своё присутствие на рынке, примерно, до2005г. Исчезновения шины PCI можно ждать ещё дольше, однако сегодня его поддержка не требует особых затрат, поэтому здесь никаких проблем не предвидится.
Линии PCI Express
Пропускная способность в одном направлении
Суммарная пропускная способность, дуплекс
1
256 Мбайт/с
512 Мбайт/с
2
512 Мбайт/с
1 Гбайт/с
4
1 Гбайт/с
2 Гбайт/с
8
2 Гбайт/с
4 Гбайт/с
16
4 Гбайт/с
8 Гбайт/с
32*
8 Гбайт/с
16 Гбайт/с
Не планируется на настольных системах.
4.3.1.3 Шина AGP (Accelerated Graphic Port)
Как это практически всегда бывает в компьютерной индустрии, вопрос решен не был. Казалось бы, вот вам простейшее решение: переходите на 66-мегагерцовую 64-разрядную шину PCI с огромной пропускной способностью, так нет же. Intel на базе того же стандарта PCI R2.1 разрабатывает новую шину - AGP (R1.0, затем 2.0), которая отличается от своего "родителя" в следующем:
1. шина способна передавать два блока данных за один 66 MHz цикл (AGP 2x);
2. устранена мультиплексированность линий адреса и данных (напомню, что в PCI для удешевления конструкции адрес и данные передавались по одним и тем же линиям);
3. дальнейшая конвейеризация операций чтения/записи, по мнению разработчиков, позволяет устранить влияние задержек в модулях памяти на скорость выполнения этих операций.
В результате пропускная способность шины была оценена в 500 МВ/сек, и предназначалась она для того, чтобы видеокарты хранили текстуры в системной памяти, соответственно имели меньше памяти на плате, и, соответственно, дешевели. Появление новых, больших по объему и при этом довольно дешевых, микросхем памяти, производители видеоадаптеров использовали иначе. В продаже появились 64х и даже 256Мегабайтные AGP видеокарты многократно превосходя по качеству предшественников.
4.3.2 Коммуникационные порты
Коммуникационные порты персональных компьютеров представлены низкоскоростными интерфейсами. К ним относят параллельный синхронный – Centronics и последовательный асинхронный – RS-232С. Данная аппаратура используется для связи с различными периферийными устройствами. Как правило, персональные компьютеры IBM комплектуются одним, двумя или тремя параллельными портами, носящими в системе названия – LPT1, LPT2 и LPT3 и двумя или четырьмя последовательными портами – носящими названия COM1, COM2, COM3, и COM4. Последовательные и параллельные интерфейсы (порты) могут располагаться как на материнских платах компьютеров, так и на платах расширений (интерфейсных адаптерах дисковой системы, видеокартах, мультикартах ввода/вывода) или на собственных специализированных интерфейсных платах.
Параллельные интерфейсы – LPT порты
Параллельные интерфейсы получили свое название благодаря методу передачи данных, т.к. они имеют восемь разрядов шины данных и способны передавать информацию байтами синхронно по восьми проводникам.
Сигналы данных могут дополнительно обеспечиваться собственными сигнальными линиями заземления – по одному на каждый канал данных. В таком случае, число сигналов возрастает до 25. Для соединения компьютера с устройством при помощи параллельного интерфейса используется 25-ти контактный разъем Centronics. Параллельные интерфейсы имеют высокую скорость передачи данных (до 150 К/сек) и низкую помехоустойчивость, что позволяет использовать кабель длинною не более трех метров. Чаще всего они используются для соединения компьютера с печатающими устройствами или двух компьютеров с целью интенсивного обмена данными.Последовательные интерфейсы – COM порты
Последовательные интерфейсы передают данные последовательно по одному биту, с синхронизацией, основанной на паритете, четности и стоповых битах. Для передачи и приема в них используется два канала – один для передачи и один – для приема, и несколько дополнительных сигнальных линий.
Для соединения при помощи последовательных портов используются 9-ти и 25-ти контактные соединительные разъемы COM портов. Последовательные коммуникационные порты имеют достаточно низкие скорости работы (50, 75, 100, 110, 200, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57000 и 115000 бит/сек) и высокую помехоустойчивость, что позволяет использовать соединительный кабель до 75 метров и более. Последовательные порты являются устройствами общего назначения и имеют разнообразное использование. Они применяются как для соединения компьютера с печатающими устройствами, терминалами, коммуникационными устройствами (факс-модем, модем), манипуляторами, ручными сканерами и т.п., так и для соединения двух компьютеров.
Как последовательные, так и параллельные интерфейсы имеют различное число расширенных дополнительных сигнальных линий, применяемых для диагностики состояний обслуживаемых устройств и передачи сигналов специального назначения. Поэтому общее число используемых каналов для передачи сигналов последовательных и параллельных интерфейсов различно. Программирование коммуникационных портов осуществляется при помощи стандартного интерфейса их контроллеров. Каждый контроллер имеет группу адресов портов ввода/вывода, отображенных на память, что позволяет, при помощи записи или чтения значений по этим адресам принимать и передавать данные и управлять этими процессами. Адреса регистров портов и аппаратные прерывания, используемые ими представлены ниже:
Порт
Адрес
Прерывание
COM1
3F8
IRQ4
COM2
2F8
IRQ3
COM3
3E8
IRQ4
COM4
2E8
IRQ3
LPT1
3BC
IRQ7
LPT2
378
IRQ5
LPT3
278
IRQ11
Операционные системы, обычно, контролируют низкоуровневое управление портами, предоставляя программам документированный высокоуровневый интерфейс с ними как с символьными устройствами, файлами или каналами, допускающими чтение, запись и оценку состояния. Также, используется протоколы интерфейсов с типовыми устройствами – например с принтерами. Как в параллельных, так и последовательных интерфейсах используется внутренняя (на уровне базовой системы ввода/вывода и аппаратуры) и внешняя (на уровне операционной системы) буферизация данных, что существенно повышает их быстродействие. Область применения параллельных и последовательных портов не меняется на протяжении всего периода развития персональных компьютеров IBM-PC. Они по прежнему представляют собой универсальные интерфейсы и служат самым разнообразным целям.
4.3.2.3 USB-порты
Спецификация периферийной шины USB разработана лидерами компьютерной и телекоммуникационной промышленности -- Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom -- для подключения компьютерной периферии вне корпуса машины по стандарту plug'n'play, в результате отпадает необходимость в установке дополнительных плат в слоты расширения и переконфигурировании системы. Персональные компьютеры, имеющие шину USB, позволяют подключать периферийные устройства и осуществляют их автоматическое конфигурирование, как только устройство физически будет присоединено к машине, и при этом нет необходимости перезагружать или выключать компьютер, а так же запускать программы установки и конфигурирования. С появлением большого количества устройств пользователя бытового и профессионального назначения(цифровых видеокамер, фотоаппаратов, диктофонов, мобильных телефонов, принтеров, сканеров и т.п.), использующих USB, сразу отразилось в увеличении соответствующих разъемов и сокращении портов LPT и COM. Возможности USB следуют из ее технических характеристик:
• Высокая скорость обмена (full-speed signaling bit rate) - 12 Mb/s
• Максимальная длина кабеля для высокой скорости обмена - 5 m
• Низкая скорость обмена (low-speed signaling bit rate) - 1.5 Mb/s
• Максимальная длина кабеля для низкой скорости обмена - 3 m
• Максимальное количество подключенных устройств (включая размножители) - 127
• Возможно подключение устройств с различными скоростями обмена
• Отсутствие необходимости в установке пользователем дополнительных элементов, таких как терминаторы для SCSI
• Напряжение питания для периферийных устройств - 5 V
• Максимальный ток потребления на одно устройство - 500 mA (это не означает, что через USB можно запитать устройства с общим током потребления 127 x 500 mA=63.5 A)
В 1999 году тот же консорциум компьютерных компаний, который инициировал разработку первой версии стандарта на шину USB, начал активно разрабатывать версию 2.0 USB, которая отличается тем, что полоса пропускания шины увеличена в 40 (!) раз, до 480 Mbits/s, что делает возможным передачу видеоданных по USB и делает ее прямым конкурентом IEEE-1394 (FireWire).
Совместимость всей ранее выпущенной периферии и высокоскоростных кабелей полностью сохраняется и сохраняется одно из самых главных достоинств USB - низкая стоимость контроллера. Контроллер стандарта 2.0 также предполагается интегрировать в chipset.
Все хорошо, но есть одно но: шина IEEE-1394 уже весьма активно используется даже в бытовых цифровых видеокамерах, для нее есть платы видеомонтажа и при постоянном падении цен на цифровые видеокамеры она, возможно, будет использоваться все шире и шире.
4.3.2.4 Firewire
IEEE 1394 или Firewire - это последовательная высокоскоростная шина, предназначенная для обмена цифровой информацией между компьютером и другими электронными устройствами. Благодаря невысокой цене и большой скорости передачи данных эта шина становится новым стандартом шины ввода-вывода для персонального компьютера. Ее изменяемая архитектура и одноранговая топология делают Fireware идеальным вариантом для подключения жестких дисков и устройств обработки аудио- и видеоинформации. Эта шина также идеально подходит для работы мультимедийных приложений в реальном времени.
Как можно сравнить USB со стандартом Sony FireWire/IEEE 1394?
Основные отличия состоят в области применения, доступности и цене.
FireWire стала доступна в простейших вариантах к началу 1998. FireWire ориентирована на подключение к персональному компьютеру бытовой электроники, требующей высокой полосы пропускания, например, цифровых камер, проигрывателей цифровых видеодисков и цифровых устройств записи.
Интерфейс
Возможность "горячей замены"
Количество поддерживаемых устройств
Пропускная способность
Возможность подключения по цепочке
Макс. длина кабеля
Последовательный порт
Нет
1
112.5 Кбит/с
Нет
1 м
Параллелльный порт
Нет
1
600 Кбит-1.5 Мбит/с
Нет
4 м
USB, USB2.0
Да
127
1.5-12,480 Мбит/c
Да
5 м
FireWire(a/b)
Да
63
100 - 800 Мбит/c
Да
4.5 м
Таким образом, данные с компакт-дисков и цифровых магнитофонов смогут передаваться без искажений, в цифровом виде.Кабельное телевидение, радиовещание и видео CD передают данные также в цифровом формате.
Тема 5. ЗАПОМИНАЮЩИЕ УСТРОЙСТВА ЭВМ
5.1. Типы запоминающих устройств
Запоминающие устройства классифицируют:
1. По типу запоминающих элементов (полупроводниковые, магнитные, конденсаторные, оптоэлектронные, голографические, криогенные).
2. По функциональному назначению (оперативные (ОЗУ), буферные (БЗУ), сверхоперативные (СОЗУ), внешние (ВЗУ), постоянные (ПЗУ)).
3. По способу организации обращения (с последовательным поиском, с прямым доступом, адресные, ассоциативные, стековые, магазинные).
4. По характеру считывания (с разрушением или без разрушения информации).
5. По способу хранения (статические или динамические).
6. По способу организации (однокоординатные, двухкоординатные, трехкоординатные, двух/трехкоординатные).
ПАМЯТЬ ЭВМ - совокупность всех запоминающих устройств, входящих в состав ЭВМ. Обычно в состав ЭВМ входит несколько различных типов ЗУ.
Производительность и вычислительные возможности ЭВМ в значительной степени определяются составом и характеристиками ее ЗУ.
Основными операциями в памяти в общем случае являются занесение информации в память - запись и выборка информации из памяти - считывание. Обе эти операции называются обращением к памяти или, подробнее, обращением при считывании и обращением при записи.
При обращении к памяти производится считывание или запись некоторой единицы данных - различной для устройств разного типа. Такой единицей может быть бит, байт, машинное слово или блок данных.
Важнейшими характеристиками отдельных устройств памяти являются емкость памяти, удельная емкость, быстродействие.
Емкость памяти определяется максимальным количеством данных, которые могут в ней храниться. Емкость измеряется в двоичных единицах (битах), машинных словах, но большей частью в байтах.
Удельная емкость есть отношение емкости ЗУ к его физическому объему.
Быстродействие памяти определяется продолжительностью операций обращения, т.е. временем, затрачиваемым на поиск единицы информации в памяти и на ее считывание, или временем на поиск места в памяти, предназначенного для хранения данной единицы информации, и на ее запись.
ВЗУ (внешнее запоминающее устройство) - запоминающее устройство, предназначенное для длительного хранения массивов информации и обмена ими с ОЗУ. Обычно строятся на базе магнитных носителей информации. Само название этого класса устройств имеет исторический характер и произошло от больших ЭВМ, в которых все ВЗУ, как более медленные и громоздкие, размещались в собственном корпусе, а не в корпусе основного модуля.
Внутренняя память ЭВМ организуется как взаимосвязанная совокупность нескольких типов ЗУ. В ее состав, кроме ОЗУ, могут входить следующие типы ЗУ:
Постоянное запоминающее устройство (пзу) - запоминающее устройство, из которого может производиться только выдача хранящейся в нем информации. Занесение информации в ПЗУ производится при его изготовлении.
Полупостоянное (программируемое) зу (ппзу) - ЗУ, в котором информация может обновляться с помощью специальной аппаратуры перед режимом автоматической работы ЭВМ. Если возможно многократное обновление информации, то иногда такое ППЗУ называют репрограммируемым (РППЗУ).
Буферное запоминающее устройство (бзу) - запоминающее устройство, предназначенное для промежуточного хранения информации при обмене данными между устройствами ЭВМ, работающими с различными скоростями. Конструктивно оно может быть частью любого из функциональных устройств.
Местная память (cверхоперативное ЗУ, СОЗУ) - буферное запоминающее устройство, включаемое между ОЗУ и процессором или каналами. Различают местную память процессора и местную память каналов.
СТЕК (магазин) - специально организованное ОЗУ, блок хранения которого состоит из регистров, соединенных друг с другом в цепочку, по которой их содержимое при обращении к ЗУ передается (сдвигается) в прямом или обратном направлении.
Кеш-память - разновидность стека, в котором хранятся копии некоторых команд из ОЗУ.
ВИДЕОПАМЯТЬ - область ОЗУ ЭВМ, в которой размещены данные, видимые на экране дисплея.
1 Память.
Одним из важнейших устройств компьютера является память, или запоминающее устройство (ОЗУ). По определению, данном в книге "Информатика в понятиях и терминах", ОЗУ - "функциональная часть цифровой вычислительной машины, предназначенной для записи, хранения и выдачи информации, представленных в цифровом виде." Однако под это определение попадает как собственно память, так и внешние запоминающие устройства (типа накопителей на жестких и гибких дисках, магнитной ленты, CD-ROM), которые лучше отнести к устройствам ввода/вывода информации. Таким образом под компьютерной памятью в дальнейшем будет пониматься только "внутренняя память компьютера: ОЗУ, ПЗУ, кэш память и флэш-память". Итак, рассмотрим классификацию внутренней памяти компьютера.
5.1.4. Классификация оперативной памяти (ОЗУ)
5.1.4.1. Введение
Оперативное запоминающее устройство является, пожалуй, одним из самых первых устройств вычислительной машины. Она присутствовала уже в первом поколении ЭВМ по архитектуре (“Информатика в понятиях и терминах”), созданных в сороковых — в начале пятидесятых годов двадцатого века. За эти пятьдесят лет сменилось не одно поколение элементной базы, на которых была построена память. Поэтому автор приводит некоторую классификацию ОЗУ по элементной базе и конструктивным особенностям.
5.1.4.2. Энергозависимая и энергонезависимая память
ЭВМ первого поколения по элементной базе были крайне ненадежными. Так, среднее время работы до отказа для ЭВМ “ENIAC” составляла 30 минут. Скорость счета при этом была не сравнима со скоростью счета современных компьютеров. Поэтому требования к сохранению данных в памяти компьютера при отказе ЭВМ были строже, чем требования к быстродействию оперативной памяти. Вследствие этого в этих ЭВМ использовалась энергонезависимая память.
Энергонезависимая память позволяла хранить введенные в нее данные продолжительное время (до одного месяца) при отключении питания. Чаще всего в качестве энергонезависимой памяти использовались ферритовые сердечники. Они представляют собой тор, изготовленных из специальных материалов — ферритов. Ферриты характеризуются тем, что петля гистерезиса зависимости их намагниченности от внешнего магнитного поля носит практически прямоугольный характер.
Вследствие этого намагниченность этого сердечника меняется скачками (положение двоичного 0 или 1, смотри рисунок) Память на ферритовых сердечниках работала медленно и неэффективно: ведь на перемагничивание сердечника требовалось время и затрачивалось много электрической энергии. Поэтому с улучшением надежности элементной базы ЭВМ энергонезависимая память стала вытесняться энергозависимой — более быстрой, экономной и дешевой. Тем не менее, ученые разных стран по-прежнему ведут работы по поиску быстрой энергозависимой памяти, которая могла бы работать в ЭВМ для критически важных приложений, прежде всего военных.
1.1 Полупроводниковая память.
В отличие от памяти на ферритовых сердечниках полупроводниковая память энергозависимая. Это значит, что при выключении питания ее содержимое теряется.
Преимуществами же полупроводниковой памяти перед ее заменителями являются:
малая рассеиваемая мощность;
высокое быстродействие;
компактность.
Эти преимущества намного перекрывают недостатки полупроводниковой памяти, что делают ее незаменимой в ОЗУ современных компьютеров.
5.1.5. SRAM и DRAM.
Полупроводниковая оперативная память в настоящее время делится на статическое ОЗУ (SRAM) и динамическое ОЗУ (DRAM). Прежде, чем объяснять разницу между ними, рассмотрим эволюцию полупроводниковой памяти за последние сорок лет.
5.1.5.1. SRAM. Замечания.
статическое ОЗУ — дорогой и неэкономичный вид ОЗУ. Поэтому его используют в основном для кэш-памяти, регистрах микропроцессорах и системах управления RDRAM.
1.1 DRAM.
Для того, чтобы удешевить оперативную память, в 90-х годах XX века вместо дорогого статического ОЗУ на триггерах стали использовать динамическое ОЗУ (DRAM). Принцип устройства DRAM следующий: система металл-диэлектрик-полупроводник способна работать как конденсатор. Как известно, конденсатор способен некоторое время “держать” на себе электрический заряд. Обозначив “заряженное” состояние как 1 и “незаряженное” как 0, мы получим ячейку памяти емкостью 1 бит. Поскольку заряд на конденсаторе рассеивается через некоторый промежуток времени (который зависит от качества материала и технологии его изготовления), то его необходимо периодически “подзаряжать” (регенерировать), считывая и вновь записывая в него данные. Из-за этого и возникло понятие “динамическая” для этого вида памяти.
5.1.6. Динамическое ОЗУ.
5.1.6.1. Конструктивные особенности.
Динамическое ОЗУ со времени своего появления прошло несколько стадий роста, и процесс ее совершенствования не останавливается. За свою десятилетнюю историю DRAM меняла свой вид несколько раз. Вначале микросхемы динамического ОЗУ производились в DIP-корпусах. Затем их сменили модули, состоящие из нескольких микросхем: SIPP, SIMM и, наконец, DIMM и RIMM. Рассмотрим эти разновидности поподробнее.
1.1 DIP.
Рис. Модуль памяти DIP
DIP- корпус —это исторически самая древняя реализация DRAM. DIP-корпус соответствует стандарту IC. Обычно это маленький черный корпус из пластмассы, по обеим сторонам которого располагаются металлические контакты .
Рис. Банк модулей памяти DIP
Микросхемы (по-другому, чипы) динамического ОЗУ устанавливаются так называемыми банками. Банки бывают на 64, 256 Кбайт, 1 и 4 Мбайт. Каждый банк состоит из девяти отдельных одинаковых чипов. Из них восемь чипов предназначены для хранения информации, а девятый чип служит для проверки четности остальных восьми микросхем этого банка.
Чипы памяти бывают одно и четырехразрядными, и иметь емкость 64 Кбит, 256 Кбит, 1 и 4 Мбит. Следует отметить, что памятью с DIP-корпусами комплектовались персональные компьютеры с микропроцессорами i8086/88, i80286 и, частично, i80386SX/DX. Установка и замена этого вида памяти была нетривиальной задачей. Мало того, что приходилось подбирать чипы для банков памяти одинаковой разрядности и емкости. Приходилось прилагать усилия и смекалку, чтобы чипы правильно устанавливались в разъемы. К тому же необходимо было не разрушить контакты механически, не повредить их инструментом, статическим электричеством, грязью и т.п. Поэтому уже в компьютерах с процессором i80386DX эти микросхемы стали заменять памяти SIPP и SIMM.
5.1.6.3. SIPP (SIP) —модули памяти.
Рис. Модуль памяти SIPP
Одной из незаслуженно забытых конструкций модулей памяти являются SIPP-модули. Эти модули представляют собой маленькие платы с несколькими напаянными микросхемами DRAM.
SIPP является сокращением слов Single Inline Package. SIPP-модули соединяются с системной платой с помощью контактных штырьков. Под контактной колодкой находятся 30 маленьких штырьков (смотри рисунок B.3.3.), которые вставляются в соответствующую панель системной платы.
Модули SIPP имели определенные вырезы, которые не позволяли вставить их в разъемы неправильным образом. По мнению автора, этот вид модулей лидировал по простоте их установки на системную плату.
5.1.6.4. SIMM-модули.
Рис. Модуль памяти SIMM (30pin)
Аббревиатура SIMM расшифровывается как Single Inline Memory Module (Модуль памяти с однорядным расположением выводов.) Он включает в себя все то, что для DIP называлось банком
Модули SIMM могут иметь объем 256 Кбайт, 1, 2, 4, 8, 16 и 32 Мбайт. Соединение SIMM-модулей с системной платой осуществляется с помощью колодок .
Модуль вставляется в пластмассовую колодку под углом 70 градусов, а потом зажимается пластмассовым держателем. При этом плата встает вертикально. Специальные вырезы на модуле памяти не позволит поставить их неправильным образом .
Модули SIMM для соединения с системной платой имеют не штырьки, а позолоченные полоски (так называемые pin, пины).
5.1.6.5. Сравнение SIMM-модулей.
SIMM-модули в своем развитии прошли два этапа. Первыми представителями SIMM-модулей были 30-пиновые SIMM FPM DRAM. Их максимальная частота работы — 29 МГц. Стандартным же временем доступа к памяти считалось 70 нс. Эти модули уже с трудом работали на компьютерах с микропроцессорами i80486DX2, и были вытеснены сначала 72-пиновыми FPM DRAM, а затем EDO RAM.
Модуль памяти SIMM (72pin)
SIMM EDO RAM имеют только 72 пина и могут работать на частоте до 50 МГц. Этими модулями памяти оснащались компьютеры с процессорами Intel 80486DX2/DX4, Intel Pentium, Pentium Pro и Pentium MMX, а также AMD 80586 и K5. Эти модули устанавливались на платах с чипсетом Intel 440TX, 440EX, 440LX, 450NX; VIA Apollo MVP 3/4, Pro/Pro+; ALI Alladin 4/4+/V/PRO II, ALI Alladin TNT2.
В настоящее время SIMM-модули, как 30-pin, так и 72-pin не удовлетворяют по своим характеристикам требованиям новых шин и процессоров. Поэтому они все активнее заменяются модулями DIMM [Евгений Калугин Типы памяти.//”Подводная лодка”, январь 2000 —стр. 166—.]
5.1.6.6. Причины повышения скорости работы EDO RAM.
Не смотря на небольшие конструктивные различия, и FPM, и EDO RAM делаются по одной и той же технологии, поэтому скорость работы должна быть одна и та же. Действительно, и FPM, и EDO RAM имеют одинаковое время считывания первой ячейки — 60—70 нс. Однако в EDO RAM применен метод считывания последовательных ячеек. При обращении к EDO RAM активизируется не только первая, но и последующие ячейки в цепочке. Поэтому, имея то же время при обращении к одной ячейке, EDO RAM обращается к следующим ячейкам в цепочке значительно быстрее. Поскольку обращение к последовательно следующим друг за другом областям памяти происходит чаще, чем к ее различным участкам (если отсутствует фрагментация памяти), то выигрыш в суммарной скорости обращения к памяти значителен. Однако даже для EDO RAM существует предел частоты, на которой она может работать. Несмотря ни на какие ухищрения, модули SIMM не могут работать на частоте локальной шины PCI, превышающей 66 МГц. С появлением в 1996 году процессора Intel Pentium II и чипсета Intel 4 0BX частота локальной шины возросла до 100 МГц, что заставило производителей динамического ОЗУ перейти на другие технологии, прежде всего DIMM SDRAM.
1.1 DIMM
Аббревиатура DIMM расшифровывается как Dual Inline Memory Module (Модуль памяти с двойным расположением выводов). В модуле DIMM имеется 168 контактов, которые расположены с двух сторон платы и разделены изолятором. Также изменились и разъемы для DIMM-модулей.
Следует отметить, что разъем DIMM имеют много разновидностей DRAM. К тому же вплоть до последнего времени модули DIMM не имели средств самоконфигурирования (в отличие от SIMM-модулей). Поэтому для облегчения выбора нужного модуля пользователям на материнских платах разные типы DIMM имеют от одного до трех вырезов на модуле памяти. Они предотвращают от неправильного выбора и неправильной установки модулей памяти.
5.1.6.8. SDRAM.
Рис. Модуль памяти SDRAM
Аббревиатура SDRAM расшифровывается как Synchronic DRAM (динамическое ОЗУ с синхронным интерфейсом). Этим они отличаются от FPM и EDO DRAM, работающих по асинхронному интерфейсу.
С асинхронным интерфейсом процессор должен ожидать, пока DRAM закончит выполнение своих внутренних операций. Они обычно занимают 60 нс. В DRAM с синхронным управлением происходит защелкивание информации от процессора под управлением системных часов. Триггеры запоминают адреса, сигналы управления и данных. Это позволяет процессору выполнять другие задачи. После определенного количества циклов данные становятся доступными, и процессор может их считывать. Таким образом, уменьшается время простоя процессора во время регенерации памяти.
Другое преимущество синхронного интерфейса —это то, что системные часы задают временные границы, необходимые DRAM. Это исключает необходимость наличия множества стробирующих импульсов, обязательных для асинхронного интерфейса. Это, во-первых, уменьшает трафик по локальной шине (нет “лишних” сигналов), а во-вторых, позволяет упростить операции ввода-вывода (в операциях пересылки центральный процессор либо контроллер DMA уже не должен выделять полезную информацию среди служебных стробирующих импульсов и битов четности). В-третьих, все операции ввода/вывода на локальной шине стали управляться одними и теми же синхроимпульсами, что само по себе хорошо.
Хотя SDRAM появилась уже давно, использование ее тормозилось высокой (на 33%) ценой по сравнению с EDO RAM. “Звездный час” SDRAM настал в 1997 году, после появления чипсета 440BX, работающего на частоте 100 МГц. Вследствие этого доля рынка SDRAM за год выросла в два раза (с 25% в 1997 году до 50% в 1998 году.)
Вскоре их сменили модули SDRAM, работающие на частотах 100 и 133 МГц. Также разработаны SDRAM на частоты 143 МГц и выше.
5.1.6.9. ESDRAM.
Следующим оригинальным решением, увеличившим частоту работы SDRAM, явилось создание кэша SRAM на самом модуле динамического ОЗУ. Так появилась спецификация Enhanced SDRAM
(ESDRAM). Это позволило поднять частоту работы модуля до 200 МГц. Назначение кэша на модуле точно такое же, что и кэш второго уровня процессора — хранение наиболее часто используемых данных.
5.1.6.10.SDRAM II.
Рис. Модуль памяти DDR DRAM (SDRAM II)
Спецификация SDRAM II (или DDR SDRAM) не имеет полной совместимости с SDRAM. Эта спецификация позволяет увеличить частоту работы SDRAM за счет работы на обеих границах тактового сигнала, то есть на подъеме и спаде. Однако SDRAM II использует тот же 168-ми контактный разъем DIMM.
5.1.6.11. SLDRAM.
Как и SDRAM II, эта спецификация использует обе границы тактового сигнала и имеет в себе SRAM. Однако благодаря протоколу SynchLink Interface эта память способна работать на частоте до 400 МГц.
1.1 Память от Rambus (RDRAM, RIMM).
Рис. Модуль памяти RDRAM (RIMM)
RDRAM представляет собой спецификацию, созданную и запатентованную фирмой Rambus, Inc. За счет использования обоих границ сигнала достигается частота работы памяти в 800 МГц.
Подсистема памяти Direct Rambus включает в себя следующие компоненты [Евгений Калугин. Типы памяти.//”Подводная лодка”, январь 2000 г., стр. 166—.]:
Direct Rambus Controller.
Direct Rambus Channel.
Direct Rambus Connector.
Direct Rambus RIMM(tm).
Direct Rambus DRAMs.
Рассмотрим эти компоненты поподробнее:
1. Контроллер Direct Rambus — это главная шина подсистемы памяти. Он помещается на чипе логики, как и PC-чипсет, микропроцессор, графический контроллер. Физически можно поместить до четырех Direct Rambus—контроллеров на одном чипе логики. Контроллер — это интерфейс между чипом логики и памятью Rambus, и в его обязанности входит генерация запросов, управление потоком данных, и ряд других функций.
2. Direct Rambus Channel создает электрические соединения между Rambus Controller и чипами Direct RIMM. Работа канала основана на 30-ти сигналах, составляющих высокоскоростную шину. Эта шина работает на частоте 400 МГц и, за счет передачи данных на обеих границах тактового сигнала, позволяет передавать данные на 800 МГц. Два канала данных (шириной в байт каждый) позволяет получать пиковую пропускную способность в 1,6 Гбайт/с. Канал соответствует форм-фактору SDRAM.
3. Разъем Direct Rambus — это разъем со 168 контактами. Контакты расположены на двух сторонах модуля, по 84 с каждой стороны. Разъем представляет собой низкоиндуктивный интерфейс между каналом на модуле RIMM и каналом на материнской плате.
4. Модуль RIMM — это модуль памяти, который включает в себя один или более чипов и организует непрерывность канала. По существу, RIMM образует непрерывный канал на пути от одного разъема к другому. Поэтому оставлять свободные разъемы недопустимо
Существуют специальные модули только с каналом, называемые continuity modules. Они не содержат чипов памяти и предназначены для заполнения свободных посадочных мест.
Модули RIMM имеют размеры, сходные с геометрическими размерами SDRAM DIMMs. Модули RIMM поддерживают SPD, которые используются на DIMM'ах SDRAM. В отличие от SDRAM DIMM, Direct Rambus может содержать любое целое число чипов Direct RDRAM (до максимально возможного).
Один канал Direct Rambus максимум может поддерживать 32 чипа DRDRAM. На материнской плате может использоваться до трех RIMM модулей. Используются 64 Мбит, 128 Мбит и 256 Мбит устройства.
Чтобы расширить память сверх 32-х устройств, могут использоваться два чипа повторителя. С одним повторителем канал может поддерживать 64 устройства с 6-ю RIMM модулями, а с двумя — 128 устройств на 12 модулях.
5. Чипы DRDRAM. Чипы DRDRAM составляют часть подсистемы Rambus, запоминающие данные. Все устройства в системе электрически расположены в канале между контроллером и терминатором. Устройства Direct Rambus могут только отвечать на запросы контроллера, который делает их шину подчиненной или отвечающей. Устройства включают в себя статическое и динамическое ОЗУ.
5.1.7. Постоянное запоминающее устройство.
Кроме оперативной памяти, под термином "память" мы будем подразумевать постоянную и CMOS - память.
К постоянной памяти относят постоянное запоминающее устройство, ПЗУ (в англоязычной литературе - Read Only Memory, ROM, что дословно перводится как "память только для чтения"), перепрограммируемое ПЗУ, ППЗУ (в англоязычной литературе – Programmable Read Only Memory, PROM), и флэш-память (flash memory). Название ПЗУ говорит само за себя. Информация в ПЗУ записывается на заводе-изготовителе микросхем памяти, и в дальнейшем изменить ее значение нельзя. В ПЗУ хранится критически важная для компьютера информация, которая не зависит от выбора операционной системы. Программируемое ПЗУ отличается от обычного тем, что информация на этой микросхеме может стираться специальными методами (например, лучами ультрафиолета), после чего пользователь может повторно записать на нее информацию. Эту информацию будетневозможно удалить до следующей операции стирания информации.
5.1.8. Флэш-память.
Особо следует рассказать о флэш-памяти. Flash по-английски – это "вспышка, проблеск". Флэш-память является энергонезависимой памятью, (как и ПЗУ и ППЗУ). При выключении компьютера ее содержимое сохраняется. Однако содержимое flash-памяти можно многократно перезаписывать, не вынимая ее из компьютера (в отличие от ППЗУ). Запись происходит медленнее, чем считывание, и осуществляется импульсами повышенного напряжения. вследствие этого, а также из-за ее стоимости, флэш память не заменит микросхемы ОЗУ.
5.1.9. CMOS-память.
CMOS-память – энергозависимая, перезаписываемая память, которая при своей работе , однако, почти не потребляет энергии. CMOS переводится как complementary metal oxode semiconductor – "комплиментарный металл - оксид - полупроводниковый". Достоинства этой памяти – низкое потребление энергии, высокое быстродействие. В CMOS - памяти компьютера находятся важные для его работы настройки, которые пользователь может менять для оптимизации работы компьютера. Питается эта память от небольшого аккумулятора или батарейки, встроенной в материнскую плату.
5.1.10. Недостатки перезаписываемой памяти.
Основной недостаток ПЗУ – невозможность обновить информацию в этом виде памяти, – одновременно является и его преимуществом: данные невозможно потерять случайно и умышленно. Особенно это стало актуальным на рубеже XX – XXI веков, с вытеснением микросхем ПЗУ на CMOS и flash-память. Рассмотрим возникающие проблемы.
5.1.10.1. Потеря данных в CMOS.
Компьютеры с ISA шиной (содержащие процессоры вплоть до i80286), имели минимум настроек. Часто они вполне нормально работали в своей основной конфигурации.
Ситуация изменилась после появления на компьютерах памяти более чем 16 Мбайт, ШВУ контроллеров и PCI-шины. Как выяснилось, в большинстве случаев стандартная настройка материнской платы стала неприменимой. Для сохранения настроек пользователя их стали хранить в CMOS-памяти.
Иногда содержимое CMOS-памяти разрушается. Это возможно в следующих случаях:
1. Воздействие вируса. При своей работе вирус может специально внедряться в CMOS-память, чтобы обеспечивать лучшие условия для его распространения либо специально вывести компьютер из строя.
2. Неисправность аккумулятора. В некоторых случаях аккумулятор CMOS-памяти может разряжаться (от времени или короткого замыкания на плате.) В этом случае содержимое CMOS может разрушиться не сразу, а по прошествии двух - трех суток.
3. Скачок напряжения при работе с CMOS. В этом случае последствия непредсказуемы.
4. Установка пароля на загрузку. Иногда пользователь для защиты от несанкционированного доступа устанавливает "пароль на загрузку". Если он потом забудет пароль, то для запуска компьютера будет необходим сброс параметров CMOS-памяти путем короткого замыкания ее аккумулятора.
Для восстановления параметров CMOS-памяти после ее сброса существуют опции "стандартной" и безопасной" настройки этой памяти на материнской плате. Пользователю в этом случае придется восстанавливать не все, а только часть параметров. Опции "стандартной" и "безопасной" настройки хранятся в ПЗУ и изменить их невозможно!
5.1.10.2 . Потеря данных в flash-памяти.
Потеря данных в flash-памяти возможна по тем же причинам, что и в CMOS-памяти. Однако для флэш-памяти нет возможности вернуться к первоначальным установкам! В связи с этим потеря информации в флэш-памяти может быть непоправимой.
... В 1998 году автор узнал о новом чрезвычайно опасном вирусе –"Чернобыль". Опасность заключалась в его действии – ровно в годовщину аварии на Чернобыльской АЭС этот вирус портил содержимое флэш-памяти и наиболее важной ее части – BIOS. В результате компьютер не мог вообще осуществлять операции ввода-вывода, в том числе и загрузку операционных систем. CMOS-память же оставалась в полном порядке! Поскольку микросхема с BIOS обычно была припаяна к материнской плате, приходилось выкидывать всю материнскую плату.
1 Общие рекомендации по выбору памяти.
Инженер, работающий с компьютерной техникой, должен знать, в каком случае память будет "узким местом" при работе компьютера и уметь предвидеть и устранять возможные проблемы. В этом разделе суммируются все, что было уже сказано о памяти, и все это выдается в виде кратких рекомендаций.
В таблице представлены минимальные, рекомендуемые и максимальные требования к памяти для различных операционных систем. Данные получены обобщением опыта многих системных администраторов г. Саратова. Максимальное значение ОЗУ - объем памяти, сверх которого повышение скорости работы компьютера не наблюдается.
Таблица
ОС
Мин.
Рек.
Макс.
MS-DOS 3.30
256K
640K
640K
MS-DOS 6.22
640K
4Mb
8Mb
MS-DOS + Win 3.11
2Mb
8Mb
16Mb
Win 95
8Mb
16Mb
64Mb
Win NT 3.51
4Mb
8Mb
24Mb
Win NT 4.0
16Mb
24Mb
64Mb
Win 98
16Mb
48Mb
128Mb
Win 2000 Prof
32Mb
128Mb
256Mb
Win 2000 Serv
128Mb
256Mb
-?
OS/2
8Mb
16Mb
64Mb
Linux
16Mb
64Mb
128Mb
Примечание: Microsoft Windows 98 может работать и при том же объеме памяти, что и Microsoft Windows 95, однако тогда для свопинга памяти необходимо иметь втрое большее свободное дисковое пространство (начиная от 128 Мбайт.)
Исходя из этой таблицы необходимо выбирать объем оперативной памяти для операционной системы.
Так, если Вы устанавливаете новую операционную систему на старый компьютер, ориентируйтесь на левый столбец. Покупая новый компьютер, ориентируйтесь на средний столбец. Правый же столбец удержит Вас от "глупой" затеи: покупки новой памяти вместо ее оптимизации.
При установке прикладных пакетов учтите, что установка каждого нового пакета, кроме дискового пространства, требует дополнительно к минимальному значению ОЗУ 2-4 Мбайта памяти! Это правило отчасти объясняет тот факт, что при большом числе установленных пакетов все программы работают медленнее, даже если они загружаются и работают поочередно. При этом производительность и устойчивость работы компьютера снижается экспоненциально до некоторого предела, зависящего от производителя и марки компьютера!
Тема 6. Организация ввода-вывода ПК
Драйвер (driver) – программное обеспечение, позволяющее конкретному устройству работать с остальными устройствами компьютера. Каждому устройству соответствует свой драйвер, разработанный под соответствующую операционную систему (операционная система – программное обеспечение, позволяющее всем частям компьютера работать как единое целое). Операционная система компьютера не распознает устройство до тех пор, пока не будет установлен необходимый драйвер (если операционная система не поддерживает спецификацию Plug and Play(включи и работай)). Существуют драйверы мыши, клавиатуры, видеокарты и т.д.
Каждое устройство для своей работы использует ресурсы ПК, называемыми системными. Обычно под системными ресурсами подразумевают:
адреса портов ввода-вывода.
каналы запросов прерываний (IRQ);
адреса памяти;
каналы прямого доступа к памяти (DMA); '
Адреса портов ввода-вывода.
Через порты ввода-вывода к компьютеру можно подключать разнообразные устройства для расширения его возможностей. Принтер, подключенный к одному из параллельных портов LPT, позволяет вывести на бумагу результаты работы. Модем, соединенный с одним из последовательных портов СОМ, обеспечивает связь по телефонным линиям с другими компьютерами, находящимися за тысячи километров от вас. Сканер, подключенный к порту LPT или адаптеру SCSI, позволяет ввести в компьютер графические изображения или текст непосредственно с листа бумаги и преобразовать их в необходимый формат для дальнейшей обработки.
В большинстве компьютеров имеется хотя бы два последовательных порта и один параллельный. Последовательные порты обозначаются, как СОМ1 и COM2, а параллельный —LPT1. В принципе, в компьютере можно установить до четырех последовательных (СОМ1-СОМ4) и трех параллельных (LPT1-LPT3) портов.
Внимание
Теоретически, к каждому из четырех последовательных портов компьютера можно подключить какое-либо устройство, например мышь или модем, но это приводит к возникновению конфликтов, связанных с использованием ресурсов.
Порты ввода-вывода позволяют установить связь между устройствами и программным обеспечением в компьютере. Они подобны двусторонним радиоканалам, так как обмен информацией в ту и другую сторону происходит по одному и тому же каналу.
В отличие от прерываний IRQ и каналов прямого доступа к памяти, в наших персональных компьютерах мы имеем огромное множество портов ввода-вывода. Имеется 65 535 портов, пронумерованных от 0000h до FFFFh, и это, пожалуй, самый удивительный артефакт в процессоре Intel. Хотя многие устройства используют до восьми портов, все равно их количество более чем достаточное. Самая большая проблема состоит в том, чтобы двум устройствам случайно не назначить один и тот же порт.
Хотя порты ввода-вывода обозначаются щестнадцатеричными адресами, подобными адресам памяти, они не память; они - порты. Различие состоит в том, что, когда вы посылаете данные по адресу памяти 1000h, то данные будут сохранены в модуле памяти SIMM или DIMM. Если вы посылаете данные по адресу 1000h порта ввода-вывода, то эти данные попадают на этот "канал" шины, и любое устройство, прослушивающее этот канал, может принять эти данные. Если никакое устройство не прослушивает этот адрес порта, то данные достигнут конца шины и будут поглощены нагрузочными резисторами шины.
Специальные программы - драйверы - взаимодействуют, прежде всего, с устройствами, используя различные адреса портов. Драйвер должен знать, какие порты использует устройство, чтобы работать с ним. Обычно это не проблема, поскольку и драйвер, и устройство, как правило, поставляются одной и той же компанией.
Системная плата и набор микросхем системной логики обычно используют адреса портов ввода-вывода от 0h до FFh, а все другие устройства— от 100h до FFFFh.
Каналы запросов прерываний (irq).
Прерывания - это базовый механизм реакции системы на возникающие события. Аппаратные прерывания, называемые обычно IRQ (Interrupt ReQuest) - это физические сигналы, с помощью которых контроллер устройства информирует процессор о необходимости обработать некоторый запрос.
Каналы прерываний представляют собой проводники на системной плате и соответствующие контакты в разъемах. После получения IRQ компьютер приступает к выполнению специальной процедуры его обработки, первым шагом которой является сохранение в стеке содержимого регистров процессора. Затем происходит обращение к таблице векторов прерываний, в которой содержится список адресов памяти, соответствующих определенным номерам (каналам) прерываний. В зависимости от номера полученного прерывания запускается программа, относящаяся к данному каналу.
Указатели в таблице векторов определяют адреса памяти, по которым записаны программы-драйверы для обслуживания платы, пославшей запрос. Например, для сетевой платы вектор прерывания содержит адрес сетевых драйверов, предназначенных для работы слей; для контроллера жесткого диска вектор указывает на программный код BIOS, обслуживающий контроллер
После выполнения необходимых действий по обслуживанию устройства, пославшего запрос, процедура обработки прерывания восстанавливает содержимое регистров процессора (извлекая его из стека) и возвращает управление компьютером той программе, которая выполнялась до возникновения прерывания.
Благодаря прерываниям компьютер может своевременно реагировать на внешние события. Например, всякий раз, когда с последовательного порта в систему поступает новый байт, вырабатывается IRQ.
Аппаратные прерывания имеют иерархию приоритетов: чем меньше номер прерывания, тем выше приоритет. Прерывания с более высоким приоритетом имеют преимущество перед прерываниями с более низкими приоритетами и могут "прерывать прерывания". В результате в компьютере может возникнуть несколько прерываний, "вложенных" друг в друга.
При генерации большого количества прерываний стек может переполниться и тогда ПК зависнет. Если такая ошибка возникает слишком часто, попытайтесь исправить ситуацию, увеличив параметр STACKS (размер стека) в файле CONFIG.SYS.
Условно схема обработки прерывания выглядит следующим образом:
1. процессор получает сигнал прерывания и его номер;
2. по специальной таблице отыскивается адрес программы, ответственной за обработку прерывания с данным номером - обработчика прерывания;
3. процессор приостанавливает текущую работу и переключается на выполнение обработчика (в общем случае это некоторый драйвер);
4. драйвер получает доступ к устройству и проверяет причину возникновения прерывания;
5. запускаются запрошенные действия - инициализация, конфигурирование устройства, обмен данными и др.
6. драйвер завершает работу, и процессор возвращается к прерванной задаче.
Очевидно, что для корректной работы механизма прерываний необходимо выполнение двух условий: во-первых, сигнал запроса должен доходить до процессора, и, во-вторых, драйвер-обработчик должен правильно реагировать на этот сигнал. В случае конфликта не соблюдается второе условие: сигнал прерывания приходит, но реакция на него оказывается неправильной, в результате чего мы имеем (в лучшем случае) неработоспособное устройство.
IRQ
Стандартная функция
IRQ
Стандартная функция
Системный таймер
8
CMOS и часы
1
Контроллер клавиатуры
9
Звуковая или сетевая карты или свободен
2
Программируемый контроллер прерываний
10
Свободен
3
Последовательный порт COM 2
11
USB или SCSI или свободен
4
Последовательный порт COM 1
12
PS/2 совместимый порт мыши
5
Звуковая или сетевая карты или свободен
13
Сопроцессор
6
Стандартный контроллер гибких дисков
14
Основной контроллер IDE
7
Параллельный порт LPT
15
Дополнительный контроллер IDE
Каналы прямого доступа к памяти (dma).
Каналы прямого доступа к памяти (DMA) используются устройствами, осуществляющими высокоскоростной обмен данными. Последовательный и параллельный порты, например, не используют DMA, в отличие от звуковой платы или адаптера SCSI. Один канал DMA может использоваться разными устройствами, но не одновременно. Например, канал DMA 1 может использоваться как сетевым адаптером, так и накопителем на магнитной ленте, но вы не сможете записывать информацию на ленту при работе в сети. Для этого каждому адаптеру необходимо выделить свой канал DMA.
Адреса памяти.
Это адрес памяти, который контроллер использует для передачи пакетов между ним и процессором. Базовый адрес памяти - это начало блока памяти, который обычно имеет размер 16 или 32К. Два устройства не могут использовать один и тот же блок памяти. Кроме того убедитесь, что этот блок памяти не перекрывает памяти, используемой другим устройством. Обычно начальные адреса находятся в верхней памяти.
По мере установки дополнительных плат в компьютере значительно повышается вероятность возникновения конфликтов, связанных с использованием ресурсов. Конфликт возникает при установке двух или более плат, каждой из которых требуется линия IRQ или адрес порта ввода-вывода. Для предотвращения конфликтов на большинстве плат устанавливаются перемычки или переключатели, с помощью которых можно изменить адрес порта ввода-вывода, номер IRQ и т.д. К счастью, найти выход из конфликтных ситуаций можно почти всегда, для этого нужно лишь знать правила игры.