Структуры вычислительных машин

В настоящее время примерно одинаковое распространение получили два способа построения вычислительных машин: с непосредственными связями и на основе шины.

Типичным представителем первого способа может служить классическая фон-неймановская ВМ (см. рис. 2). В ней между взаимодействующими устройствами (процессор, память, устройство ввода/вывода) имеются непосредственные связи. Особенности связей (число линий в шинах, пропускная способность и т. п.) определяются видом информации, характером и интенсивностью обмена Достоинством архитектуры с непосредственными связями можно считать возможность развязки «узких мест» путем улучшения структуры и характеристик только определенных связей, что экономически может быть наиболее выгодным решением. У фон-неймановских ВМ таким «узким местом» является канал пересылки данных между ЦП и памятью, и «развязать» его достаточно непросто. Кроме того, ВМ с непосредственными связями плохо поддаются реконфигурации.

В варианте с общей шиной все устройства вычислительной машины подключены к магистральной шине, служащей единственным трактом для потоков команд, данных и управления (рис. 3). Наличие общей шины существенно упрощает реализацию ВМ, позволяет легко менять состав и конфигурацию машины. Благодаря этим свойствам шинная архитектура получила широкое распространение в мини- и микро-ЭВМ. Вместе с тем, именно с шиной связан и основной недостаток архитектуры: в каждый момент передавать информацию по шине может только одно устройство. Основную нагрузку на шину создают обмены между процессором и памятью, связанные с извлечением из памяти команд и данных и записью в память результатов вычислений. На операции ввода/вывода остается лишь часть пропускной способности шины. Практика показывает, что даже при достаточно быстрой шине для 90% приложений этих остаточных ресурсов обычно не хватает, особенно в случае ввода или вывода больших массивов данных.

Рис 3. Структура ВМ на базе общей шины

В целом следует признать, что при сохранении фон-неймановской концепции последовательного выполнения команд программы шинная архитектура в чистом ее виде оказывается недостаточно эффективной. Более распространена архитектура с иерархией шин, где помимо магистральной шины имеется еще несколько дополнительных шин. Они могут обеспечивать непосредственную связь между устройствами с наиболее интенсивным обменом, например процессором и кэшпамятью. Другой вариант использования дополнительных шин — объединение однотипных устройств ввода/вывода с последующим выходом с дополнительной шины на магистральную. Все эти меры позволяют снизить нагрузку на общую шину и более эффективно расходовать ее пропускную способность.


1.7 Представление информации в ЭВМ

В предыдущих параграфах мы установили, что основой представления информации в ЭВМ являются числа. Т.е. и обрабатываемые данные и команды либо являются числами, либо закодированы числами. При чем эти числа представлены в двоичной системе счисления. В связи с этим элементарные логические электронные устройства на базе которых строятся вычислительные системы упрощаются и существует возможность использования аппарата алгебры логики для обработки электрических сигналов.

Рассмотрим подробнее элементарные электронные логические устройства на базе которых строятся электрические схемы составляющих компьютера.

Логический элемент компьютера - это часть электронной логичеcкой схемы, которая реализует элементарную логическую функцию.

Логическими элементами компьютеров являются электронные схемы И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ и другие (называемые также вентилями), а также триггер.

С помощью этих схем можно реализовать любую логическую функцию, описывающую работу устройств компьютера. Обычно у вентилей бывает от двух до восьми входов и один или два выхода.

Чтобы представить два логических состояния - "1" и "0" в вентилях, соответствующие им входные и выходные сигналы имеют один из двух установленных уровней напряжения. Например, +5 вольт и 0 вольт.

Высокий уровень обычно соответствует значению "истина" ("1"), а низкий - значению "ложь" ("0").

Каждый логический элемент имеет свое условное обозначение, которое выражает его логическую функцию, но не указывает на то, какая именно электронная схема в нем реализована. Это упрощает запись и понимание сложных логических схем.

Работу логических элементов описывают с помощью таблиц истинности.

Таблица истинности - это табличное представление логической схемы (операции), в котором перечислены все возможные сочетания значений истинности входных сигналов (операндов) вместе со значением истинности выходного сигнала (результата операции) для каждого из этих сочетаний.

Схема И реализует конъюнкцию двух или более логических значений. Условное обозначение на структурных схемах схемы И с двумя входами представлено на рис. 1.7.1. Таблица истинности - в таблице 1.7.1.

Рис. 1.7.1 Таблица 1.7.1
x y xy
     
     
     
     

Единица на выходе схемы И будет тогда и только тогда, когда на всех входах будут единицы. Когда хотя бы на одном входе будет ноль, на выходе также будет ноль. Связь между выходом z этой схемы и входами x и y описывается соотношением: z = xy (читается как "x и y").

Операция конъюнкции на функциональных схемах обозначается знаком "&" (читается как "амперсэнд"), являющимся сокращенной записью английского слова and.

Схема ИЛИ реализует дизъюнкцию двух или более логических значений.

Когда хотя бы на одном входе схемы ИЛИ будет единица, на её выходе также будет единица. Условное обозначение схемы ИЛИ представлено на рис. 1.7.2. Знак "1" на схеме - от устаревшего обозначения дизъюнкции как ">=1" (т.е. значение дизъюнкции равно единице, если сумма значений операндов больше или равна 1). Связь между выходом z этой схемы и входами x и y описывается соотношением: z = x v y (читается как "x или y"). Таблица истинности - в табл. 1.7.2.

Рис. 1.7.2 Таблица 1.7.2
x y x v y
     
     
     
     

Схема НЕ (инвертор) реализует операцию отрицания. Связь между входом x этой схемы и выходом z можно записать соотношением z =, где читается как "не x" или "инверсия х".

Если на входе схемы 0, то на выходе 1. Когда на входе 1, на выходе 0. Условное обозначение инвертора - на рисунке 1.7.3, а таблица истинности - в табл. 1.7.3

Рис. 1.7.3 Таблица 1.7.3
x
   
   

Схема И-НЕ состоит из элемента И и инвертора и осуществляет отрицание результата схемы И.

Связь между выходом z и входами x и y схемы записывают следующим образом: , где читается как "инверсия x и y".

Условное обозначение схемы И-НЕ представлено на рисунке 1.7.4. Таблица истинности схемы И-НЕ - в табл. 1.7.4.

Рис. 1.7.4 Таблица 1.7.4
x y
     
     
     
     

Схема ИЛИ-НЕ состоит из элемента ИЛИ и инвертора и осуществляет отрицание результата схемы ИЛИ.

Связь между выходом z и входами x и y схемы записывают следующим образом: , где, читается как "инверсия x или y". Условное обозначение схемы ИЛИ-НЕ представлено на рис. 1.7.5. Таблица истинности схемы ИЛИ-НЕ - в табл. 1.7.5.

Рис. 1.7.5 Таблица 1.7.5
x y
     
     
     
     

Описанные устройства позволяют выполнять логические операции. Рассмотрим устройство, которое является основой узлов выполняющих арифметические операции, это сумматор.

Сумматор - это электронная логическая схема, выполняющая суммирование двоичных чисел. Сумматор служит, прежде всего, центральным узлом арифметико-логического устройства компьютера, однако он находит применение также и в других устройствах машины.

Так как числа хранятся поразрядно рассмотрим элементарное устройство для хранения в памяти одного разряда (бита числа).

Триггер - это электронная схема, широко применяемая в регистрах компьютера для надёжного запоминания одного разряда двоичного кода. Триггер имеет два устойчивых состояния, одно из которых соответствует двоичной единице, а другое - двоичному нулю.

Термин триггер происходит от английского слова trigger - защёлка, спусковой крючок. Для обозначения этой схемы в английском языке чаще употребляется термин flip-flop, что в переводе означает "хлопанье". Это звукоподражательное название электронной схемы указывает на её способность почти мгновенно переходить ("перебрасываться") из одного электрического состояния в другое и наоборот.

2.2. Формат команды

Для того, чтобы выяснить формат команды необходимо вспомнить, что вся информация в ЭВМ должна представляться в виде чисел. Очевидно, что команда должна содержать информацию о том:

1) Что делать

2) Над чем делать

3) Длина команды, условия адресации и кол-во данных

Команда должна содержать численный код операции, который однозначно отвечает поставленным выше требованиям, и операнды над которыми будет совершаться операция:

В зависимости от команды операндами могут быть: численные константы, данные из памяти, адрес в памяти по которому находятся данные.

Количество операндов зависит от кода команды.

Формат команд также зависит от разрядности процессора ЭВМ. Под разрядностью процессора понимается количество разрядов(цифр) которое он может принять. Разрядность процессора определяет слово.

Пример: требуется вычислить выражение

Z=(x*y)/(x+y-a)

Результатом должен явиться набор команд последовательно расположенных в памяти в виде чисел

Пусть арифметические команды имеют следующий формат:

Где КОП – код операции

ОП 1 – адрес ячейки памяти в которой будет храниться результат

ОП 2 – первый операнд арифметической операции

ОП 3 – второй операнд арифметической операции

Допустим имеем следующие коды операций

+  
-  
*  
/  

Разобьем исходное выражение по операциям:

R1=x*y

R2=x+y

R2=R2-A

Z=R1/R2

Теперь пусть полученные переменные имеют следующие адреса в памяти:

x y A R1 R2 Z
           

Тогда программа, подсчитывающая значение этого выражения в памяти выглядела бы так:

Адрес                                
Значение                                

Выполнение программы осуществляется следующим образом: В процессоре существует специальный регистр-счетчик, который хранит адрес текущей команды. Устройство управления вырабатывает управляющие сигналы по которым команда загружается в процессор. Далее УУ осуществляет дешифрацию кода команды, после чего вычисляются адреса операндов, которые участвуют в выполнении операции. Эти операнды загружаются в АЛУ, где происходит выполнение операции. Результат помещается либо в память, либо в РОН процессора.

Понятие команды

Команда - это описание элементарной операции, которую должен выполнить компьютер.

В общем случае, команда содержит следующую информацию:

· код выполняемой операции;

· указания по определению операндов (или их адресов);

· указания по размещению получаемого результата.

В зависимости от количества операндов, команды бывают:

· одноадресные;

· двухадресные;

· трехадресные;

· переменноадресные.

Команды хранятся в ячейках памяти в двоичном коде.

В современных компьютерах длина команд переменная (обычно от двух до четырех байтов), а способы указания адресов переменных весьма разнообразные.

В адресной части команды может быть указан, например:

· сам операнд (число или символ);

· адрес операнда (номер байта, начиная с которого расположен операнд);

· адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда), и др.

Рассмотрим несколько возможных вариантов команды сложения (англ. 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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: