
30. пятишинная структура компьютера
Если в компьютере применяются две системные шины, например, ISA и PCI, то каждая из них имеет свой собственный контроллер шины, и работают они параллельно, не влияя друг на друга. Тогда получается уже четырехшинная, а иногда и пятишинная структура.
|
|
|
31. Основные шинные интерфейсы материнской платы. Их характеристики и назначение
Интерфейс – это аппаратное и программное обеспечение (элементы соединения и вспомогательные схемы управления, их физические, электрические и логические параметры), предназначенное для сопряжения систем или частей системы (программ или устройств). Под сопряжением подразумеваются следующие функции: выдача и прием информации; управление передачей данных; согласование источника и приемника информации.Важное значение имеют также следующие технические характеристики интерфейсов: 1) вместимость (максимально возможное количество абонентов, одновременно подключаемых к контроллеру интерфейса без расширителей); 2) пропускная способность или скорость передачи (длительность выполнения операций установления и разъединения связи и степень совмещения процессов передачи данных); 3) максимальная длина линии связи; 4) разрядность; 5) топология соединения. Различают два класса системных интерфейсов: с общей шиной (сигналы адреса и данных мультиплексируются) и с изолированной шиной (раздельные сигналы данных и адреса). VLB (VESA Local Bus). Интерфейс локальной шины стандарта VESA. Локальная шина соединяет процессор с оперативной памятью в обход основной шины. PCI (Peripherial Component Interconnect). Стандарт подключения внешних устройств, введенный в ПК на базе процессора Pentium. По своей сути, это интерфейс локальной шины с разъемами для подсоединения внешних компонентов FSB (Front Side Bus). Начиная с процессора Pentium Pro, для связи с оперативной памятью используется специальная шина FSB.AGP (Advanced Graphic Port). Специальный шинный интерфейс для подключения видеоадаптеров. USB (Universal Serial Bus). Стандарт универсальной последовательной шины определяет новый способ взаимодействия компьютера с периферийным оборудованием.
В настоящее время для обеспечения взаимодействия с жесткими дисками распространены интерфейсы системного уровня, использующие сигналы в логике центрального процессора, что предполагает реализацию функций контроллера накопителя в самом накопителе, а устройство, сопрягающее интерфейс накопителя с системной шиной ПК, выполняет лишь роль адаптера интерфейса (моста). В IBM PC таким интерфейсом является EIDE/ATA .В современной вычислительной технике наблюдается тенденция перехода на высокоскоростные последовательные интерфейсы. Так, для накопителей был предложен последовательный интерфейс SerialATA, Стандарт SATA/300 обеспечивает пропускную способность до 3 Гбит/с (без учета кодирования 8B/10B). Кроме рассмотренных интерфейсов в ПЭВМ используются универсальные периферийные интерфейсы SCSI, USB, FireWire и т. п.
32. Основные директивы Assembly.
Директива ASSUME.Назначение директивы ASSUME - установить для ассемблера связь между сегментами и сегментными регистрами CS, DS, ES и SS. Директива EXTRN.Назначение директивы EXTRN - информировать ассемблер о переменных и метках, которые определены в других модулях, но имеют ссылки из данного модуля. Директива GROUP.Программа может содержать несколько сегментов одного типа (код, данные, стек). Назначение директивы GROUP - собрать однотипные сегментыпод одно имя так, чтобы они поместились в один сегмент объемом 64 Кбайт
Следующая директива GROUP объединяет SEG1 и SEG2 в одном ассемблерноммодуле: Директива INCLUDE.Отдельные фрагменты ассемблерного кода или макрокоманды могут использоваться в различных программах. Для этого такие фрагменты и макрокоманды записываются в отдельные дисковые файлы, доступные для использования из любых программ. Для доступа к этому файлу необходимо указать директиву INCLUDE Директива LABEL позволяет переопределять атрибут определенного имени. Директива NAME обеспечивает другой способ назначения имени модулю: Ассемблер выбирает имя модуля в следующем порядке1) если директива NAME присутствует, то ее операнд становится именем модуля;2) если директива NAME отсутствует, то ассемблер использует первые шесть символов из директивы TITLE;3) если обе директивы NAME и TITLE отсутствуют, то именем модулястановится имя исходного файла. Директиву ORG можно использовать для переопределения областей памяти.Любая процедура представляет собой совокупность кодов, начинающуюся директивой PROC и завершающуюся директивой ENDP. Обычно эти директивы используются для подпрограмм в кодовом сегменте.
Назначение директивы PUBLIC - информировать ассемблер, что на указанные имена имеются ссылки из других ассемблерных модулей. Формат директивы: Директива RECORD позволяет определять битовые строки. Одно из назначений этой директивы - определить однобитовые или многобитовые переключатели.
Директива SEGMENT Ассемблерный модуль может состоять из одного или более сегментов, части сегмента или даже частей нескольких сегментов.
Директива STRUC обеспечивает определение различных полей в виде структуры. Данная директива не поддерживается в малом ассемблере ASM. 34. директивы определения данных
Директивы определения данных используются для выделения байт в сегменте. Вы можете также использовать их для заполнения этих байт начальными данными и определения переменных данных. средством, которое применяется во всех директивах определения данных, является использование для указания повторения блока данных ключевого слова DUP.
Вы можете определять данные с помощью директив DB, DW, DD,DQ, DF, DP или DT. Как показано в следующей таблице, эти директивы выделяют простые данные различного размера:
DB Определение данных размером в байт. DW Определение данных размером в слово. DD Определение данных размером в двойное слово. DQ Определение данных размером в четверное слово. DF Определение данных размером в 6 байт.DP Определение данных размером в 6 байт DT Определение данных размером в 10 байт. ¦
36. Директивы управленія трансляціей. IFDEF и IFNDEFДанные директивы позволяют управлять трансляцией фрагментов программы в зависимости от того, определено или нет в программе некоторое символическое имя. Директива IFDEF проверяет, описано или нет в программе символическое имя, и если это так, то в объектный модуль помещается первый фрагмент програм-
мы. В противном случае при наличии директивы ELSE в объектный код помещается второй фрагмент программы. Если же директивы ELSE нет (и символическое имя в программе не описано), то вся часть программы между директивами IF и ENDIF игнорируетсяи в объектный модуль не включается. Действие IFNDEF обратно действию IFDEF. Если символического имени в программе нет, то транслируется первый фрагмент программы. Если оно присутствует, то при наличии ELSE транслируется второй фрагмент программы. Если ELSE отсутствует, а символическое имя в программе определено, то часть программы, заключенная между IFNDEF и ENDIF, игнорируется.
Как видим, эти директивы логически связаны с директивами IF и IFE, то есть их можно применять в тех же самых случаях, что и последние.
35. Директивы определения сегментов и процедур.Сегментные регистры позволяют одновременно работать: − с одним сегментом кода; − с одним сегментом стека; − с одним сегментом данных; − с тремя дополнительными сегментами данных. Физически сегмент представляет собой область памяти, занятую командами и/или данными, адреса которых вычисляются относительно значения в соответствующем сегментном регистре. Директивы определения сегментов: .code – начало или продолжение сегмента кода; .data – начало или продолжение сегмента инициализированных дан-
ных;
.stack [размер] – начало или продолжение
сегмента стека модуля. (размер – размер
стека)
Для описания процедур вы можете использовать директиву PROC.
37. Виды адресации памяти ПК.
В зависимости от спецификаций и местоположения источников образования полного (абсолютного) адреса в языке ассемблера различают следующие способы адресации операндов: − регистровая; − прямая; − непосредственная; − косвенная; − базовая; − индексная; − базово-индексная. Регистровая адресация подразумевает использование в качестве операнда регистра процессора, например,
PUSH DS
MOV BP,SP
При прямой адресации один операнд представляет собой адрес памяти, второй – регистр:
Непосредственная адресация применяется, когда операнд, длинной в байт или слово находится в ассемблерной команде. При использовании косвенной адресации абсолютный адрес формируется исходя из сегментного адреса в одном из сегментных регистров и смещения в регистрах BX, BP, SI или DI. В случае применения базовой адресации исполнительный адрес является суммой значения смещения и содержимого регистра BP или BX.При индексной адресации исполнительный адрес определяется как сумма значения указанного смещения и содержимого регистра SI или DI так же, как и при базовой адресации. Базово-индексная адресация подразумевает использование для вычисления исполнительного адреса суммы содержимого базового регистра и индексного регистра, а также смещения, находящегося в операторе
38. структура памяти ПК Память компьютера построена из двоичных запоминающих элементов — битов, объединенных в группы по 8 битов, которые называются байтами. (Единицы измерения памяти совпадают с единицами измерения информации). Все байты пронумерованы. Номер байта называется его адресом. Байты могут объединяться в ячейки, которые называются также словами. Для каждого компьютера характерна определенная длина слова — два, четыре или восемь байтов. Это не исключает использования ячеек памяти другой длины (например, полуслово, двойное слово). Как правило, в одном машинном слове может быть представлено либо одно целое число, либо одна команда. Однако, допускаются переменные форматы представления информации. Широко используются и более крупные производные единицы объема памяти: Килобайт, Мегабайт, Гигабайт, а также, в последнее время, Терабайт и Петабайт.Современные компьютеры имеют много азнообразных запоминающих устройств, которые сильно отличаются между собой по назначению, временным характеристикам, объёму хранимой информации и стоимости хранения одинакового объёма информации. Различают два основных вида памяти — внутреннюю и внешнюю.
В состав внутренней памяти входят оперативная память, кэш-память и специальная память.Внешняя память (ВЗУ) предназначена для длительного хранения программ и данных, и целостность её содержимого не зависит от того, включен или выключен компьютер. В отличие от оперативной памяти, внешняя память не имеет прямой связи с процессором. Информация от ВЗУ к процессору и наоборот циркулирует примерно по следующей цепочке:
|
39. Многомашинные и многопроцессорные вычислительные системы.
Многомашинная ВС содержит некоторое число компьютеров, информационно взаимодействующих между собой. Машины могут находиться рядом друг с другом, а могут быть удалены друг от друга на некоторое, иногда значительное расстояние (вычислительные сети).
В многомашинных ВС каждый компьютер работает под управлением своей операционной системы (ОС). Информационное взаимодействие компьютеров в многомашинной ВС может быть организовано на уровне: процессоров, оперативной памяти (ОП), каналов связи.
При непосредственном взаимодействии процессоров друг с другом информационная связь реализуется через регистры процессорной памяти и требует наличия в ОС весьма сложных специальных программ.
В многопроцессорной ВС имеется несколько процессоров, информационно взаимодействующих между собой либо на уровне регистров процессорной памяти, либо на уровне оперативной памяти. Этот тип взаимодействия принят в большинстве случаев, так как организуется значительно проще и сводится к созданию общего поля оперативной памяти для всех процессоров. Общий доступ к внешней памяти и к устройствам ввода-вывода обеспечивается обычно через каналы ОП. Важным является и то, что многопроцессорная вычислительная система работает под управлением единой операционной системы, общей для всех процессоров. Это существенно улучшает динамические характеристики ВС, но требует наличия специальной, весьма сложной операционной системы.
40. Команды пересылки данных и особенности адресации и применения.
К группе команд пересылки данных относятся следующие команды:
mov <операнд назначения>,<операнд-источник>
xchg <операнд!>,<операнд2>
MOV — это основная команда пересылки данных. Она реализует самые разнообразные варианты пересылки. Отметим особенности применения этой команды.« Командой MOV нельзя осуществить пересылку из одной области памяти в другую. Если такая необходимость возникает, то нужно использовать в качестве промежуточного буфера любой доступный в данный момент регистр общего назначения.
Нельзя загрузить в сегментный регистр значение непосредственно из памяти.Для такой загрузки требуется промежуточный объект. Это может быть регистр общего назначения или стек. Нельзя переслать содержимое одного сегментного регистра в другой сегментный регистр. Это объясняется тем, что в системе команд нет соответствующего кода операции. Но необходимость в таком действии часто возникает. Выполнить такую пересылку можно, используя в качестве промежуточных все те же регистры общего назначения. Нельзя использовать сегментный регистр CS в качестве операнда назначения.
Для двунаправленной пересылки данных применяют команду XCHG,отдельную команду обмена.
41. Логически операцииСогласно теории, над высказываниями (над битами) могут выполняться логические операции.Отрицание (логическое НЕ) — логическая операция над одним операндом, результатом которой является величина, обратная значению исходного операнда. Эта операция однозначно характеризуется следующей таблицей истинности.Логическое сложение (логическое включающее ИЛИ) — логическая операция над двумя операндами, результатом которой является истина (1), если один или оба операнда истинны (1), или ложь (0), если оба операнда ложны (0). Логическое умножение (логическое И) — логическая операция над двумя операндами, результатом которой является истина (1) только в том случае, если оба операнда истинны (1). Во всех остальных случаях значение операции — ложь (0). Логическое исключающее сложение (логическое исключающее ИЛИ) — логическая операция над двумя операндами, результатом которой является истина(1), если только один из двух операндов истинен (1), и ложь (0), если оба операнда либо ложны (0), либо истинны (1).
42. Арифметические операции Assembly.Процессор реализует в нескольких форматах четыре базовые арифметические операции. Операции выполняются над 8- и 16-битовыми беззнаковыми и знаковыми операндами. В языке Ассемблера так же предусмотрены команды для работы с десятичными числами. Арифметические команды данного языка программирования:ADC (сложить с переносом) приемник+источник+cf = приемник.INC (инкремент) приемник+1 = приемник.ADD (сложить) приемник+источник = приемник.SBB (вычесть с переносом) приемник-источник-cf = приемник.SUB (вычесть) приемник-источник = приемник.DEC (декремент) приемник-1 = приемник.NEG (изменить знак) -приемник = приемник.MUL (умножить без знака) АL*источник (8) = АХ,АХ*источник (16) = DX AX.IMUL (умножить со знаком) Команда MUL (при этом операнды знаковые).DIV (разделить без знака) АХ/источник (8) = AL.DX, АХ/источник (16)= АХ.IDIV (разделить со знаком) Команда DIV (при этом операнды знаковые)
Различие между беззнаковыми и знаковыми числами заключается в способах объяснения двоичных наборов. Знаковые числа описаны в дополнительном коде с использованием самого левого бита для представления знака. Беззнаковыми числами – называют обычные двоичные числа, у которых все биты являются значащими.
43. команды безусловного перехода
Безусловные переход - это такой переход, который передает управление всякий раз, когда он выполняется. Наоборот, услловный переход проверяет текущее состояние машины, чтобы определить,передавать управление или нет. Существует два вида команд безусловной передачи управления - команды переходов и вызовов. Все команды вызова CALL - безусловны. Близкий вызов CALL, или NEAR CALL, указывает новое значение регистра IP и сохраняет старое значение регистра IP в стеке в качестве адреса возврата. Далекий вызов CALL, или FAR CALL, задает новые значения сегмента и смещения для дальнейшего выполнения программы и сохраняет в стеке как регистр IP, так и регистр CS. Близкий непосредственный вызов CALL - это относительный переход, использующий двухбайтовое поле смещения. Все остальные команды вызова - абсолютные переходы. Командам CALL соответствуют команды возврата RET. Все возвраты - косвенные переходы, поскольку они извлекают адрес перехода из вершины стека. Близкий возврат извлекает из стека одно слово и помещает его в регистр IP, а далекий возврат извлекает два слова, помещая слово из меньшего адреса в регистр IP, а слово из большего адреса в регистр CS. Команды безусловного перехода JMP идентичны командам CALL по их возможностям адресации. Однако существует дополнительная команда перехода, указывающая однобайтовое смещение для близкого относительного перехода (команда короткого перехода). Соответствующей ей команды CALL не существует, так как вызовы подпрограмм, расположенных поблизости, происходят очень редко. Команды переходов используют те же методы генерации адреса, что и команды вызова.
44.условная передача управления.
45. вызов и возврат процедуры
Как обратиться к процедуре? Так как имя процедуры обладает теми же атрибутами, что и обычная метка в команде перехода, то обратиться к процедуре, в принципе, можно с помощью любой команды перехода. Но есть одно важное свойство,которое можно использовать благодаря специальному механизму вызова процедур.Суть состоит в возможности сохранения информации о контексте программы в точке вызова процедуры. Под контекстом понимается информация о состоянии программы в точке вызова процедуры. В системе команд процессора есть две команды для работы с контекстом — CALL и RET. Команда CALL осуществляет вызов процедуры (подпрограммы). Подобно команде JMP команда CALL передает управление по адресу с символическим именем, но при этом в стеке сохраняется адрес возврата (то есть адрес команды, следующей после команды CALL). Команда RET считывает адрес возврата из стека и загружает его в регистры CS и EIP/IP, тем самым возвращая управление на команду, следующую в программе за командой CALL. Для команды CALL, как и для JMP, актуальна проблема организации ближних и дальних переходов. Это видно из формата команды, где присутствует параметр [модификатор]. Как и в случае команды JMP, вызов процедуры командой CALL может быть внутрисегментным и межсегментным.
» При внутрисегментном вызове процедура находится в текущем сегменте кода (имеет тип near), При межсегментном вызове процедура находится в другом сегменте кода (имеет
тип far). Важно отметить, что одна и та же процедура не может быть одновременно процедурой ближнего и дальнего типов.
С директивой PROC используются еще несколько директив: ARG, RETURNS, LOCAL,USES. Их назначение — помочь программисту выполнить некоторые рутинные действия при вызове и возврате из процедуры (заодно и повысив надежность кода).Директивы ARG и RETURNS назначают входным и выходным параметрам процедуры, передаваемым через стек, символические имена. Директива USES в качестве параметров содержит имена используемых в процедуре регистров. При обработке этой директивы ассемблер формирует входной и выходной коды процедуры (из команд PUSH и POP), обеспечивающие сохранение и восстановление регистров. Директива LOCAL предназначена для выделения кадра стека для локальных переменных, что позволяет экономить память, занимаемую программой в целом.
46-47. Структура прерываний и их виды в ЭВМ.
№ |
Назначение |
№ |
Назначение |
0h |
Переполнение при делении (А) |
16h |
BIOS Обслуживание клавиатуры |
1h |
Пошаговое прерывание (А) |
17h |
BIOS Поддержка принтера |
2h |
Немаскируемое прерывание (А) |
18h |
BIOS ROM-Basic |
3h |
Прерывание по контрольной точке INT3 (П) |
19h |
BIOS Начальный загрузчик |
4h |
Прерывание по переполнениюINTO (П) |
1ah |
BIOS Ввод-вывод таймера |
5h |
Печать экрана PrtSc (П) |
1bh |
BIOS | DOS – ОбработкаCtrl+Break |
8h |
Прерывание таймера (А) |
1ch |
Прерывание по таймеру (пользователь) |
9h |
Прерывание от клавиатуры (А) |
1dh |
BIOS Указатель видео параметров |
Eh |
Прерывание от дисковода (А) |
1eh |
BIOS Указатель параметров дискеты |
10h |
BIOS Видео сервис |
1fh |
BIOS Указатель графических символов |
11h |
BIOS Проверка оборудования |
20h |
DOS Завершение программы |
12h |
BIOS Размер используемой памяти |
21h |
DOS Сервис MS DOS |
13h |
BIOS Дисковый ввод-вывод |
22h |
DOS Адрес завершения |
14h |
BIOS Ввод-вывод через COM-порт |
23h |
DOS Адрес завершения поCtrl-Break |
15h |
BIOS Специальные функции AT |
25 /26 |
DOS Прямой дисковый ввод - вывод |
Система прерываний любого компьютера является его важнейшей частью, позволяющей быстро реагировать на события, обработка которых должна выполнятся немедленно: сигналы от машинных таймеров, нажатия клавиш клавиатуры или мыши, сбои памяти и пр. Рассмотрим в общих чертах компоненты этой системы. Сигналы аппаратных прерываний, возникающие в устройствах, входящих в состав компьютера или подключенных к нему, поступают в процессор не непосредственно, а через два контроллера прерываний, один из которых называется ведущим, а второй – ведомым.Два контроллера используются для увеличения допустимого количества внешних устройств. Дело в том, что каждый контроллер прерываний может обслуживать сигналы лишь от 8 устройств. Для обслуживания большего количества устройств контроллеры можно объединять, образуя из них веерообразную структуру. Основная функция контроллеров - передача сигналов запросов прерываний от внешних устройств на единственный вход прерываний микропроцессора.Самое начало оперативной памяти от адреса 0000h до 03FFh отводится под векторы прерываний - четырехбайтовые области, в которых хранятся адреса обработчиков прерываний. Помимо аппаратных прерывания от периферийных устройств, называемых внешними, имеются еще два типа прерываний: внутренние и программные. Внутренние прерывания возбуждаются цепями самого процессора при возникновении одной из специально оговоренных ситуаций, например, при выполнении операции деления на ноль или при попытке выполнить несуществующую команду. еще одним чрезвычайно важным типом прерываний являются программные прерывания. Они вызываются командой hit с числовым аргументом, который рассматривается процессором, как номер вектора прерывания.