Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и ВТ Брукшир.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.07 Mб
Скачать

1Архитектура эвм

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

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

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

В этой главе мы рассмотрим вопросы, связанные с представлением и хранением данных в компьютере. Иногда мы будем затрагивать проблемы технологий, так как они часто находят отражение во внешних характеристиках современных машин. Однако большинство из них будут актуальны и после того, как современные технологии уступят дорогу технологиям завтрашнего дня.

1.1 Биты и их хранение

В современной компьютерной науке информация представляется как последовательность битов. Бит (bit) — двоичный разряд — является одним из двух чисел — 0 или 1, которые с настоящего момента мы будем рассматривать просто как символы, не имеющие никакого числового значения. В дальнейшем мы убедимся, что значение бита варьирует в зависимости от его применения. Иногда последовательность битов используется для представления числовых значений, иногда они обозначают буквы или другие символы, иногда — изображения, иногда могут обозначать звуки. Хранение бита в машине требует устройства, которое может находиться в двух состояниях, такого как выключатель (включен или выключен), реле (открыто или закрыто) или флаг на флагштоке (поднят или опущен). Одно из состояний используется для обозначения 0, второе для обозначения 1. Рассмотрим способы хранения битов в современных машинах.

1.1.1Вентили и триггеры

Н ачнем с описания логических операций AND (И), OR (ИЛИ) и XOR (исключающее ИЛИ)1 (рис. 1.1). Эти операции схожи с арифметическими операциями умножения и сложения тем, что они так же объединяют пару значений на входе, чтобы породить третье значение на выходе. Однако в отличие от арифметических операций они манипулируют только числами 0 и 1. В данном контексте число 0 имеет значение «ложь» (false), а 1 — значение «истина» (true). Операции, которые манипулируют значениями «истина» и «ложь», называют булевыми операциями (Boolean operations) в честь математика Джорджа Буля (1815-1864).

Операция AND отражает истинность или ложность высказывания, которое построено из двух меньших или более простых высказываний при помощи союза «и». Такое высказывание имеет вид Р AND Q, где Р — это одно высказывание, a Q— другое. Например, Кермит - лягушонок AND Мисс Пигги - актриса.

Входные данные оператора AND отражают истинность или ложность компонентов сложного высказывания; результат, который мы имеем на выходе, отражает истинность или ложность самого сложного высказывания. Поскольку утверждение вида Р AND Q истинно только тогда, когда обе его части истинны, можно заключить, что на выходе операции 1 AND 1 должна быть 1, а во всех других случаях результатом будет 0 (см. рис. 1.1).

П одобным же образом в основании операции OR лежит сложное утверждение вида Р OR Q, где Р опять является одним утверждением, a Q — другим. Такое выражение является истинным тогда, когда, по крайней мере, один из его компонентов является истинным (см. рис. 1.1).

В английском языке1 нет отдельного союза, который передавал бы значение операции исключающее ИЛИ. Результатом этой операции является 1 (истина), когда одно значение на входе равно 1 (истина), а другое равно 0 (ложь). Например, высказывание вида Р XOR Q означает «или Р, или Q, но не оба»2.

Следующей булевой операцией является операция NOT (HE, отрицание) (см. сноску 1). Она отличается от AND, OR и XOR тем, что имеет только одно значение на входе. На выходе получается противоположное значение; если входящее значение операции НЕ «истина», то результатом ее применения является «ложь» и наоборот. Следовательно, если на входе мы имеем истинность или ложность высказывания Фоззи - медведь, то на выходе — истинность или ложность высказывания Фоззи не медведь.

Устройство, которое порождает результат какой-либо булевой операции при данных входных значениях, называется вентилем (gate). Вентили могут быть построены с применением различных технологий, таких как механические устройства, реле различных типов, оптические механизмы и т. д. В современных компьютерах вентили являются небольшими электронными схемами, в которых числа 0 и 1 представлены как уровни напряжения. Однако не будем вдаваться в детали. Для задач, стоящих перед нами, достаточно символического представления вентилей (рис. 1.2). Обратите внимание, что вентили, соответствующие операциям AND, OR, XOR, NOT представлены схемами, имеющими различную форму, при этом исходные значения входят с одной стороны, а результирующее значение выходит с другой.

Такие вентили, как эти, являются стандартными блоками, из которых конструируется компьютер. Важным шагом в этом направлении является схема, изображенная на рис. 1.3, которая представляет собой отдельный пример из множества существующих схем, называемых триггерами. Триггер (flip-flop) — это схема, которая на выходе имеет значение 0 или 1. Это значение остается неизменным до тех пор, пока кратковременный импульс, исходящий из другой цепи, не заставит его переключиться на другое значение. Другими словами, триггер будет переходить из одного состояния в другое только под влиянием внешнего стимула. До тех пор, пока оба значения на входе цепи равны 0 (см. рис. 1.3), результат на выходе (0 или 1) будет оставаться неизменным. Однако подача импульса 1 на верхний вход схемы приведет к тому, что значение на выходе будет равно 1, в то время как подача импульса 1 на нижний вход триггера в результате даст 0.

Р ассмотрим последнее утверждение более подробно. Не зная текущего значения на выходе схемы (см. рис. 1.3), предположим, что значение на верхнем входе стало 1, а значение на нижнем входе осталось равным 0 (рис. 1.4, а). В результате этого преобразования значение на выходе вентиля ИЛИ станет равным 1, независимо от того, какое значение имеется на другом входе вентиля. В свою очередь, оба входящих значения вентиля И теперь станут равны 1, так как одно из них и так равно 1 в результате действия вентиля НЕ. Тогда на выходе вентиля И будем иметь 1, что означает, что второй вход вентиля ИЛИ теперь равен 1 (рис. 1.4, б). Этот факт является гарантией того, что значение на выходе вентиля ИЛИ будет оставаться равным 1, даже если значение на верхнем входе триггера опять станет равным 0 (рис. 1.4, б). В итоге значение на выходе триггера стало равным 1 и будет оставаться таким и после того, как значение на верхнем входе будет опять равно 0.

Подобным же образом, подача 1 на нижний вход схемы приведет к тому, что значение на выходе триггера станет равным 0 и будет сохраняться таким после того, как значение на нижнем входе опять будет равняться 0.

Значимость триггера, на наш взгляд, состоит в том, что он идеально подходит для хранения битов в компьютере. Значение, которое хранится, является значением на выходе триггера. Другие схемы могут с легкостью управлять этим значением, посылая импульсы на входы триггера, и так же другие схемы могут отвечать на хранящееся значение, используя выход триггера в качестве собственного входа.

Конечно, существуют и другие способы построения триггера (рис. 1.5). Если вы поэкспериментируете с этой схемой, вы придете к выводу, что хотя она обладает другой внешней структурой, ее внутренние свойства остаются такими же, как и у ранее рассмотренной схемы (см. рис. 1.3). Это заключение является иллюстрацией роли абстрактных инструментов. Проектируя триггер, инженер рассматривает и альтернативные способы построения триггера с использованием стандартных блоков. Затем, когда триггер и другие основные схемы спроектированы, инженер может использовать их в качестве стандартных блоков для конструирования более сложной схемы. В свою очередь, схема элементов вычислительной машины приобретает иерархическую структуру, каждый уровень которой в качестве абстрактных инструментов использует компоненты более низкого уровня.