12.12.2011 Уровни организации ЭВМ. Машинный уровень Уровни организации ЭВМ. Машинный уровень Лекция №5 1 12.12.2011 Схема машины Джона Фон Неймана Устройство ввода Память – линейная (упорядоченная) однородная последовательность некоторых элементов, называемых ячейками. Память Устройство вывода Регистры - ячейки, расположенные не в оперативной памяти, а в других устройствах ЭВМ. ЦП УУ Память АЛУ 4 2 12.12.2011 Память Адресом ячейки называется её номер. Память, к которой П й обращается CPU Адресуемая регистровая память имеет небольшой объём (порядка десятков ячеек) Память Основная (оперативная) память Имеет большой объём. Ячейки памяти в машине фон Неймана нумеруются от нуля до некоторого положительного числа N, которое обычно является степенью двойки. двойки Каждая ячейка состоит из более мелких частей, именуемых разрядами и нумеруемых также от нуля до определённого числа. 3 12.12.2011 Память Количество разрядов разрядность памяти. в ячейке Память обозначает Каждый разряд может хранить цифру в некоторой системе счисления. счисления 7 6 5 Старшие 4 3 2 1 0 Младшие В большинстве ЭВМ используется двоичная система счисления, т.к. это более выгодно с точки зрения аппаратной реализации, в этом случае каждый разряд хранит один бит информации. Восемь бит составляет один байт. 4 12.12.2011 Память Адрес ячейки Содержимое в (байта) двоичной системе 0000 10011010 0001 00000000 0002 11111111 0003 11000010 0004 10001111 0005 10101010 Содержимое в 16-ичной системе 9A 00 FF C2 8F AA Устройство Управления УУ управляет всеми остальными устройствами ЭВМ. Оно осуществляет это путём посылки управляющих сигналов, подчиняясь которым остальные устройства производят определённые действия, предписанные этими сигналами 10 5 12.12.2011 Устройство Управления Регистры УУ Регистр команд (RK) Всегда хранится текущая выполняемая команда Счётчик адреса (RA) При выполнении текущей команды в него записывается адрес следующей команды Арифметико–Логическое Устройство Выполняет следующие действия: Считать содержимое некоторой ячейки памяти – поместить содержимое ячейки памяти в р регистр, р р расположенный в самом АЛУ Записать в некоторую ячейку памяти Производить операции над данными в своих регистрах: R1, R2, S 6 12.12.2011 Формальное описание выполнения одной команды в машине Фон Неймана считать из памяти очередную команду на регистр команд увеличить счётчик адреса на единицу выполнить очередную команду перейти к выполнению следующей команды и т.д. Взаимодействие УУ и АЛУ Операция р сложения двух у чисел z:=x+yy ((здесь x,, y и z – адреса ячеек памяти) При получении такой команды УУ последовательно посылает управляющие сигналы в АЛУ: 1. считать операнды x и y из памяти и поместить их на регистры R1 и R2; 2. произвести операцию сложения чисел на регистрах R1 и R2 и записать результат на регистр S; 3. переслать копию регистра S в ячейку памяти с адресом z. 7 12.12.2011 Схема команд с различным числом адресов операндов Команда Команда - совокупность сведений (в виде двоичных кодов), необходимых процессору для выполнения требуемого действия: тип операции, информация о местонахождении обрабатываемых данных и результата ( р ) (адреса). Сведения размещаются в определенных разрядах – полях. Формат команды – заранее оговоренная структура полей Ф й ее кода. КОП A1 8 разрядов 24 разряда A2 A3 24 разряда 24 разряда КОП A1 A2 8 разрядов 24 разряда 24 разряда КОП A1 8 разрядов 24 разряда КОП 8 разрядов = 10 байт = 7 байт = 4 байта = 1 байт 15 Число адресов в команде называется адресностью ЭВМ. 8 12.12.2011 Форматы команд Форматы команд Рассмотрим р двухадресную д у др у ЭВМ,, в которой р регистровая память состоит из 16 ячеек. В такой ЭВМ в качестве адресов операндов каждой команды могут быть или адреса двух регистров, или адрес регистра и адрес др ячейки основной памяти. Адреса регистров на схемах команд будем обозначать R1 и R2, а адрес основной памяти A1 или A2. Первый вид команд будем называть командами формата регистр-регистр (обозначается RR), а вторые – формата регистр-память (обозначается RX). КОП R1 1 байт R2 = 2 байта 1 байт КОП R1 A2 8б бит 4б бита 20 бит б = 4 байта 9 12.12.2011 Форматы команд регистр – регистр (RR); регистр – память, память – регистр (RX); регистр – непосредственный операнд в команде (RI); память – непосредственный й операнд в команде (SI); память – память, т.е. оба операнда в основной памяти (SS). ( ) Базирование адресов Пусть переменные располагаются в следующих ячейках й памяти: A – в ячейке с адресом 10 000 000 B – в ячейке с адресом 10 000 001 X – в ячейке с адресом др 10 000 002 R – в ячейке с адресом 10 000 003 большинство адресов в нашей программе имеют вид B+, B+ где B - базовый адрес программы или просто база (в нашем случае B=10 000 000), – смещение адреса относительно этой базы. 10 12.12.2011 Сегментирование Сегмент памяти – это сплошной у участок памяти,, начало которого задаётся в некотором регистре, называемом базовым, или сегментным. Сегментирование позволяет уменьшить объём памяти для хранения программ. Сегментирование Для доступа к другим ячейкам памяти необходимо записать в сегментный регистр новое значение (как говорят, перезагрузить сегментный регистр). Несмотря на указанный недостаток практически все современные недостаток, ЭВМ производят сегментирование памяти. Недостаток: каждая команда может обращаться не к любой ячейки оперативной памяти, а только к тем из них, до которых "дотягивается" смещение. 11 12.12.2011 Способы адресации Способ адресации – это способ задания операндов внутри машинной команды. Другими словами это правила, по которым заданные в команде (двоичные) числа определяют местонахождение и значение операндов для данной команды. Способы адресации Прямой способ адресации – в адресном поле фактически указывается адресный код операнда Непосредственный способ адресации – в др поле ууказывается не адресный др код, д, а сам адресном операнд. Обычно применяется для задания констант вычисления Косвенный способ адресации – адресный код содержит не адрес самого операнда, а адрес памяти, где хранится адрес операнда, то есть адресный код – это адрес адреса 12 12.12.2011 Типы машинных команд Функциональное Ф назначение Команды передачи данных 1. кодов внутри CPU 2 обмена 2. б CPU с памятью 3. кодов между CPU и периферией Команды обработки данных 1.Арифметически е 2.Логические 3.Команды сдвига 4.Команды обработки строк Уровни организации ЭВМ. Микропрограммный уровень Любая машинная команда исполняется аппаратурой не непосредственно, а путем их интерпретации в соответствующую последовательность более простых действий. Следовательно, всегда существует задача программирования машинных команд из более простых действий – р р р р микропрограммирование. 13 12.12.2011 Уровни организации ЭВМ. Ассемблерный уровень Для упрощения процесса написания программ для ЭВМ был разработан язык-посредник, названный Ассемблером, который, с одной стороны, должен быть машинноориентированным (допускать написание любых машинных программ), а с другой стороны – позволять автоматизировать процесс составления программ в машинном коде. коде Уровни организации ЭВМ. Ассемблерный уровень Для перевода с языка Ассемблера на язык машины используется специальная программапереводчик, также называемая Ассемблером (от английского слова “assembler” – “сборщик”). 14 12.12.2011 Уровни организации ЭВМ. Ассемблерный уровень Что должна делать программа Ассемблер при переводе с языка Ассемблера на язык машины: заменять мнемонические обозначения кодов операций на соответствующие машинные коды операций; автоматически распределять память под хранение переменных, что позволяет программисту не заботиться о конкретном адресе переменной, если ему всё равно, где она будет расположена; преобразовывать числа, написанные в программе в различных системах счисления во внутреннее машинное представление (в машинную систему счисления). Пример полной программы на Ассемблере s segment stack db 128 dup(?) s ends data segment x dw d 5 y dw 3 z dw ? data ends code segment assume cs:code, ds:data, ss:s begin: b i mov ax,data mov ds,ax mov ax,x add ax,y mov z,ax mov ah,4ch int 21h code ends end begin 15