КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Принцип передачи информации
Обмен информацией производится по каналам передачи информации. Каналы передачи информации могут использовать различные физические принципы. Так, при непосредственном общении людей информация передается с помощью звуковых волн, а при разговоре по телефону - с помощью электрических сигналов, которые распространяются по линиям связи. Компьютеры могут обмениваться информацией с использованием каналов связи различной физической природы: кабельных, оптоволоконных, радиоканалов и др.
Общая схема передачи информации включает в себя отправителя информации, канал передачи информации и получателя информации (рис. 4.1). Если производится двусторонний обмен информацией, то отправитель и получатель информации могут меняться ролями.
Рис. 4.1. Канал обмена информацией Основной характеристикой каналов передачи информации является их пропускная способность (скорость передачи информации). Пропускная способность канала равна количеству информации, которое может передаваться по нему в единицу времени.
Обычно пропускная способность измеряется в битах в секунду (бит/с) и кратных единицах Кбит/с и Мбит/с. Однако иногда в качестве единицы измерения используется байт в секунду (байт/с) и кратные ему единицы Кбайт/с и Мбайт/с.
Соотношения между единицами пропускной способности канала передачи информации такие же, как между единицами измерения количества информации:
1 байт/с = 23 бит/с = 8 бит/с; 1 Кбит/с = 210 бит/с = 1024 бит/с; 1 Мбит/с = 210 Кбит/с = 1024 Кбит/с; 1 Гбит/с = 210 Мбит/с = 1024 Мбит/с.
1. Программно-доступные регистры процессоров х86
Все процессоры архитектуры x86 (даже многоядерные, большие и сложные) являются дальними потомками древнего Intel 8086 и совместимы с его архитектурой. Это значит, что программы на ассемблере 8086 будут работать и на всех современных процессорах x86. Все внутренние регистры процессора Intel 8086 являются 16-битными: Всего процессор содержит 12 программно-доступных регистров, а также регистр флагов (FLAGS) и указатель команд (IP). Регистры общего назначения (РОН) AX, BX, CX и DX используются для хранения данных и выполнения различных арифметических и логических операций. Кроме того, каждый из этих регистров поделён на 2 части по 8-бит, с которыми можно работать как с 8-битными регистрами (AH, AL, BH, BL, CH, CL, DH, DL). Младшие части регистров имеют в названии букву L (от слова Low), а старшие H (от слова High). Некоторые команды неявно используют определённый регистр, например, CX может выполнять роль счетчика цикла. Индексные регистры предназначены для хранения индексов при работе с массивами. SI (Source Index) содержит индекс источника, а DI (Destination Index) — индекс приёмника, хотя их можно использовать и как регистры общего назначения. Регистры-указатели BP и SP используются для работы со стеком. BP (Base Pointer) позволяет работать с переменными в стеке. Его также можно использовать в других целях. SP (Stack Pointer) указывает на вершину стека. Он используется командами, которые работают со стеком. (Про стек я подробно расскажу в отдельной части учебного курса) Сегментные регистры CS (Code Segment), DS (Data Segment), SS (Stack Segment) и ES (Enhanced Segment) предназначены для обеспечения сегментной адресации. Код находится в сегменте кода, данные — в сегменте данных, стек — в сегменте стека и есть еще дополнительный сегмент данных. Реальный физический адрес получется путём сдвига содержимого сегментного регистра на 4 бита влево и прибавления к нему смещения (относительного адреса внутри сегмента). Подробнее о сегментной адресации рассказывается в части 31. COM-программа всегда находится в одном сегменте, который является одновременно сегментом кода, данных и стека. При запуске COM-программы сегментные регистры будут содержать одинаковые значения. Указатель команд IP (Instruction Pointer) содержит адрес команды (в сегменте кода). Напрямую изменять его содержимое нельзя, но процессор делает это сам. При выполнении обычных команд значение IP увеличивается на размер выполненной команды. Существуют также команды передачи управления, которые изменяют значение IP для осуществления переходов внутри программы. Регистр флагов FLAGS содержит отдельные биты: флаги управления и признаки результата. Флаги управления меняют режим работы процессора: · D (Direction) — флаг направления. Управляет направлением обработки строк данных: DF=0 — от младших адресов к старшим, DF=1 — от старших адресов к младшим (для специальных строковых команд). · I (Interrupt) — флаг прерывания. Если значение этого бита равно 1, то прерывания разрешены, иначе — запрещены. · T (Trap) — флаг трассировки. Используется отладчиком для выполнения программы по шагам. Признаки результата устанавливаются после выполнения арифметических и логических команд: · S (Sign) — знак результата, равен знаковому биту результата операции. Если равен 1, то результат — отрицательный. · Z (Zero) — флаг нулевого результата. ZF=1, если результат равен нулю. · P (Parity) — признак чётности результата. · C (Carry) — флаг переноса. CF=1, если при сложении/вычитании возникает перенос/заём из старшего разряда. При сдвигах хранит значение выдвигаемого бита. · A (Auxiliary) — флаг дополнительного переноса. Используется в операциях с упакованными двоично-десятичными числами. · O (Overflow) — флаг переполнения. CF=1, если получен результат за пределами допустимого диапазона значений.
Микроархитектура процессоров 8086 и Pentium Pro Микропроцессор 8086 ориентирован на выполнение команд параллельно с их выборкой и может быть условно разделен на две части, работающие асинхронно ( Устройство сопряжения обеспечивает формирование 20-разрядного физического адреса памяти, выборку команд и операндов из памяти, организацию очередности команд и запоминание результатов выполнения команд в памяти. В состав УС входит шесть 8-разрядных ре- гистров очереди команд, четыре 16-разрядных сегментных регистра, 16- разрядный регистр обмена и 16-разрядный сумматор адреса, интерфейс с внешними шинами. Регистры очереди команд организованы по принципу FIFO - «первым пришел - первым вышел». УС готово выполнить цикл вы- борки 16-разрядного слова из памяти всякий раз, когда в очереди освобож- даются, по меньшей мере, два байта, а УО извлекает из очереди команды по мере их выполнения. При выполнении команд передачи управления, например условных и безусловных переходов, очередь очищается УС и начинает заполняться заново.
Среди программно-доступных регистров выделяют следующие группы (см. Рис. 2.4): 41 • Регистры данных: AX – аккумулятор (Accumulator); BX - базовый ре- гистр (Base); CX - регистр счетчика (Counter); DX - регистр данных (Data). • Регистры-указатели (индексные регистры): SI - индекс источника (Source Index); DI - индекс приемника (Destination Index); BP - указа- тель базы (Base Pointer); SP - указатель стека (Stack Pointer). • Сегментные регистры: SS - сегмент стека (Stack Segment); DS - сег- мент данных (Data Segment); ES - дополнительный сегмент (Extended data Segment); CS – сегмент кода (Code Segment). 16-битные регистры AX, BX, CX, DX состоят из двух 8-битных поло- вин, к которым можно независимо обращаться по именам AH, BH, CH, DH - старшие байты и AL, BL, CL, DL - младшие байты. регистры данных сегментные регист- ры 15 8 7 0 15 0 аккумулятор AH AL AX кода CS базовый BH BL BX данных DS счетчик CH CL CX стека SS данных DH DL DX доп. ES данных адресные регистры указатель стека SP указатель IP указатель базы BP команд индекс назначе- ния DI регистр FLAGS состояния индекс источника SI Рис. 2.4 Регистры процессора 8086 Биты (или флаги) регистра признаков FLAGS разделяются на условные, отражающие результат предыдущей операции ALU, и управляющие, от которых зависит выполнение специальных функций. 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 OF DF IF TF SF ZF AF PF CF Рис. 2.5 Флаги процессора 8086 Флаги TF, IF, DF относятся к управляющим флагам, остальные - к ус- ловным (флагам состояния). Флаги отражают следующие условия: • флаг переноса CF устанавливается в 1 при переносе/заеме, возни- кающем при сложении/вычитании байтов или слов, а также прини- мает значение выдвигаемого бита при сдвигах операнда; • флаг четности PF устанавливается в 1, если младшие 8 бит резуль-42 тата имеют четное число единиц; • флаг вспомогательного переноса AF устанавливается в 1, если есть перенос/заем из младшей тетрады в старшую 8- или 16-битного ре- зультата в операциях десятичного сложения/вычитания; • флаг нуля ZF устанавливается в 1 при нулевом результате операции; • флаг знака SF устанавливается в 1 при отрицательном результате операции при использовании дополнительного кода; • флаг переполнения OF устанавливается в 1 при потере старшего бита результата сложения или вычитания; • если флаг направления DF установлен в 1, то используется авто- декрементная адресация при выполнении операции обработки строк, если DF установлен в 0, то используется автоинкрементная адреса- ция; • если флаг прерывания IF установлен в 1, то внешние маскируе- мые прерывания разрешены, иначе запрещены; • если флаг трассировки TF установлен в 1, то процессор переходит в состояние прерывания после выполнения каждой операции, что позволяет проводить пошаговую отладку программ
Прерывания - приостановление основных вычислений в процессоре, для выполнения вспомогательных действий, технологических сервисных процедур – можно разделить на два класса: внешние и внутренние. Каждо-71 му прерыванию назначен четырехбайтный вектор с номером в диапазоне 0h - FFh. Векторы определяют адреса подпрограмм обслуживания преры- вания (ISR, Interrupt Service Routine) и размещаются в младшем килобайте адресного пространства памяти в виде IP:CS (сегмент_ISR:смещение_ISR, смещение записывается по младшему адресу).
2) Система адресации процессоров х86 в РРР, адресное пространство процессора
Адресное пространство — это диапазон адресов (множество адресов), к которым может обратиться процессор, используя адресный код. Если адресный код содержит п бит, то размер адресного пространства равен 2" байтов. Обычно размер адресного кода равен количеству линий в адресной шине (разрядности адресной шины). Например, если компьютер имеет 16-разрядную адресную шину, то адресное пространство его процессора равно 216=64 Кб, а при 32-разрядной адресной шине адресное пространство равно 2 =4 Гб. Супер хардовый ответ:
|