Уровни организации ЭВМ. Машинный уровень Лекция 5
Уровни организации ЭВМ. Машинный уровень
Устройство вывода ЦП Память Устройство ввода УУАЛУ Схема машины Джона Фон Неймана
4 Память Память – линейная (упорядоченная) однородная последовательность некоторых элементов, называемых ячейками. Регистры - ячейки, расположенные не в оперативной памяти, а в других устройствах ЭВМ.
Память Адресуемая регистровая память имеет небольшой объём (порядка десятков ячеек) Память, к которой обращается CPU Основная (оперативная) память Имеет большой объём.
Адресом ячейки называется её номер. Ячейки памяти в машине фон Неймана нумеруются от нуля до некоторого положительного числа N, которое обычно является степенью двойки. Каждая ячейка состоит из более мелких частей, именуемых разрядами и нумеруемых также от нуля до определённого числа. Память
Количество разрядов в ячейке обозначает разрядность памяти. Каждый разряд может хранить цифру в некоторой системе счисления. В большинстве ЭВМ используется двоичная система счисления, т.к. это более выгодно с точки зрения аппаратной реализации, в этом случае каждый разряд хранит один бит информации. Восемь бит составляет один байт. Память
СтаршиеМладшие
Адрес ячейки (байта) Содержимое в двоичной системе Содержимое в 16-ичной системе A9A FF C F AA Память
10 Устройство Управления УУ управляет всеми остальными устройствами ЭВМ. Оно осуществляет это путём посылки управляющих сигналов, подчиняясь которым остальные устройства производят определённые действия, предписанные этими сигналами
Устройство Управления Регистр команд (RK) Всегда хранится текущая выполняемая команда Регистры УУ Счётчик адреса (RA) При выполнении текущей команды в него записывается адрес следующей команды
Арифметико–Логическое Устройство Выполняет следующие действия: Считать содержимое некоторой ячейки памяти – поместить содержимое ячейки памяти в регистр, расположенный в самом АЛУ Записать в некоторую ячейку памяти Производить операции над данными в своих регистрах: R1, R2, S
Формальное описание выполнения одной команды в машине Фон Неймана считать из памяти очередную команду на регистр команд увеличить счётчик адреса на единицу выполнить очередную команду перейти к выполнению следующей команды и т.д.
Взаимодействие УУ и АЛУ Операция сложения двух чисел z:=x+y (здесь x, y и z – адреса ячеек памяти) При получении такой команды УУ последовательно посылает управляющие сигналы в АЛУ: 1.считать операнды x и y из памяти и поместить их на регистры R1 и R2; 2.произвести операцию сложения чисел на регистрах R1 и R2 и записать результат на регистр S; 3.переслать копию регистра S в ячейку памяти с адресом z.
15 Команда - совокупность сведений (в виде двоичных кодов), необходимых процессору для выполнения требуемого действия: тип операции, информация о местонахождении обрабатываемых данных и результата (адреса). Сведения размещаются в определенных разрядах – полях. Формат команды – заранее оговоренная структура полей ее кода. Число адресов в команде называется адресностью ЭВМ. Команда
Схема команд с различным числом адресов операндов КОПA1A2A3 = 10 байт 8 разрядов24 разряда КОПA1A2 = 7 байт 8 разрядов24 разряда КОПA1A1 = 4 байта 8 разрядов24 разряда КОП = 1 байт 8 разрядов
Рассмотрим двухадресную ЭВМ, в которой регистровая память состоит из 16 ячеек. В такой ЭВМ в качестве адресов операндов каждой команды могут быть или адреса двух регистров, или адрес регистра и адрес ячейки основной памяти. Адреса регистров на схемах команд будем обозначать R1 и R2, а адрес основной памяти A1 или A2. Первый вид команд будем называть командами формата регистр-регистр (обозначается RR), а вторые – формата регистр-память (обозначается RX). Форматы команд
КОПR1R1R2R2 = 2 байта 1 байт КОПR1A2 = 4 байта 8 бит4 бита20 бит
Форматы команд регистр – регистр (RR); регистр – память, память – регистр (RX); регистр – непосредственный операнд в команде (RI); память – непосредственный операнд в команде (SI); память – память, т.е. оба операнда в основной памяти (SS).
Пусть переменные располагаются в следующих ячейках памяти: A – в ячейке с адресом B – в ячейке с адресом X – в ячейке с адресом R – в ячейке с адресом большинство адресов в нашей программе имеют вид B+, где B - базовый адрес программы или просто база (в нашем случае B= ), – смещение адреса относительно этой базы. Базирование адресов
Сегмент памяти – это сплошной участок памяти, начало которого задаётся в некотором регистре, называемом базовым, или сегментным. Сегментирование позволяет уменьшить объём памяти для хранения программ. Недостаток: каждая команда может обращаться не к любой ячейки оперативной памяти, а только к тем из них, до которых "дотягивается" смещение. Сегментирование
Для доступа к другим ячейкам памяти необходимо записать в сегментный регистр новое значение (как говорят, перезагрузить сегментный регистр). Несмотря на указанный недостаток, практически все современные ЭВМ производят сегментирование памяти. Сегментирование
Способы адресации Способ адресации – это способ задания операндов внутри машинной команды. Другими словами это правила, по которым заданные в команде (двоичные) числа определяют местонахождение и значение операндов для данной команды.
Способы адресации Прямой способ адресации – в адресном поле фактически указывается адресный код операнда Непосредственный способ адресации – в адресном поле указывается не адресный код, а сам операнд. Обычно применяется для задания констант вычисления Косвенный способ адресации – адресный код содержит не адрес самого операнда, а адрес памяти, где хранится адрес операнда, то есть адресный код – это адрес адреса
Типы машинных команд Команды передачи данных 1.кодов внутри CPU 2.обмена CPU с памятью 3.кодов между CPU и периферией Функциональное назначение Команды обработки данных 1.Арифметически е 2.Логические 3.Команды сдвига 4.Команды обработки строк
Уровни организации ЭВМ. Микропрограммный уровень Любая машинная команда исполняется аппаратурой не непосредственно, а путем их интерпретации в соответствующую последовательность более простых действий. Следовательно, всегда существует задача программирования машинных команд из более простых действий – микропрограммирование.
Уровни организации ЭВМ. Ассемблерный уровень Для упрощения процесса написания программ для ЭВМ был разработан язык-посредник, названный Ассемблером, который, с одной стороны, должен быть машинно- ориентированным (допускать написание любых машинных программ), а с другой стороны – позволять автоматизировать процесс составления программ в машинном коде.
Уровни организации ЭВМ. Ассемблерный уровень Для перевода с языка Ассемблера на язык машины используется специальная программа- переводчик, также называемая Ассемблером (от английского слова assembler – сборщик).
Уровни организации ЭВМ. Ассемблерный уровень Что должна делать программа Ассемблер при переводе с языка Ассемблера на язык машины: заменять мнемонические обозначения кодов операций на соответствующие машинные коды операций; автоматически распределять память под хранение переменных, что позволяет программисту не заботиться о конкретном адресе переменной, если ему всё равно, где она будет расположена; преобразовывать числа, написанные в программе в различных системах счисления во внутреннее машинное представление (в машинную систему счисления).
Пример полной программы на Ассемблере s segment stack db 128 dup(?) s ends data segment xdw 5 ydw 3 zdw ? data ends code segment assume cs:code, ds:data, ss:s begin: mov ax,data mov ds,ax mov ax,x add ax,y mov z,ax mov ah,4ch int 21h code ends end begin