Понедельник , 30 марта 2020
Новости
Главная / Студентам / ААС / Лекция 6. Логические основы построения вычислительной машины, элементы и узлы

Лекция 6. Логические основы построения вычислительной машины, элементы и узлы

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

  • импульс или его отсутствие; 
  • высокий или низкий потенциал; 
  • высокий потенциал или его отсутствие. 

При импульсном способе отображения код единицы идентифицируется наличием электрического импульса, код нуля – его отсутствием (впрочем, может быть и наоборот). Импульс характеризуется амплитудой и длительностью, причем длительность должна быть меньше временного такта машины. 

При потенциальном способе отображения код единицы – это высокий уровень напряжения, а код нуля – отсутствие сигнала или низкий его уровень. Уровень напряжения не меняется в течение всего такта работы машины. Форма и амплитуда сигнала при этом во внимание не принимаются, а фиксируется лишь сам факт наличия или отсутствия потенциала. 

6.1 Электронные технологии и элементы, применяемые в ЭВМ 

Электронные технологии и элементы, на основе которых создавались ЭВМ, многократно изменялись. 

Машины первого поколения строились на электронных лампах, второго – на дискретных полупроводниковых приборах (диодах и триодах – транзисторах), третьего и последующих – на интегральных полупроводниковых схемах. 

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

  • резисторно-диодные; 
  • резисторно-транзисторные; 
  • феррито-транзисторные; 
  • диодно-транзисторные; 
  • транзисторно-транзисторные. 

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

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

Полевые транзисторы 

Полевые транзисторы имеют три электрода: 

  • затвор (аналог базы биполярных транзисторов); 
  • исток (аналог эмиттера); 
  • сток (аналог коллектора). 

Затвор электрически изолирован от прочих электродов пленкой оксида кремния, управляет протеканием тока между истоком и стоком не путем диффузии электронов (как в npn-транзисторах) или дырок (как pnp-транзисторах), а создаваемым им электростатическим полем. Поэтому МОП-транзисторы и называются полевыми. 

Униполярные транзисторы имеют большее быстродействие, нежели биполярные, ибо механизм их работы не связан с медленными диффузионными процессами. Элементы транзистора размещены на плоской кремниевой подложке (см. рис. 9). 

Рисунок 9 – Структура полевого транзистора 

Изменялась и архитектура систем логических элементов. Полевые транзисторы имеют несколько разновидностей: 

  1. nМОП; 
  1. pМОП; 
  1. МОП с дополнительной симметрией (КМОП-транзисторы – комплементарная структура металл-оксид-полупроводник). 

В настоящее время КМОП-транзисторы применяются и в системах оперативной памяти, и в системах флэш-памяти. В модулях оперативной памяти для хранения одного бита информации используется конденсатор с – «паразитная» емкость, имеющаяся между электродами транзистора (рис. 10.). Величина заряда этой емкости определяет хранимый бит: наличие заряда – «0», отсутствие заряда – «1» (иногда наоборот). 

Рисунок 10 – Элемент памяти на полевых транзисторах

Управление схемой осуществляется: 

  • при записи информации – подачей потенциала на адресную шину 1 и записываемого бита по информационной шине 2, 
  • при считывании информации – подачей потенциала на адресную шину 3 и анализом изменения потенциала на выходной шине 4. 

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

Планарные микросхемы 

Изготавливаются интегральные схемы с МОП-транзисторами по планарной технологии: на поверхность пластины из полупроводника (кремния) наносится защитный слой диэлектрика (обычно путем окисления поверхности для образования пленки из двуокиси кремния), в котором методами фотолитографии вскрывают микроокна. Поверх слоя диэлектрика наносится металлическая пленка, имеющая в окнах контакт с поверхностью полупроводника. Через окна для создания электронно-дырочных переходов нужной (n— или p-) полярности проводится диффузия материалов-доноров или материалов-акцепторов электронов. Так как кремний – четырехвалентный химический элемент, то для образования p-областей используются трехвалентные материалы (бор, галлий, алюминий), а для создания n-областей – пятивалентные материалы (сурьма, мышьяк, фосфор). 

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

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

Уменьшение токов утечки достигается следующими способами: 

  • использование медных проводников (вместо имеющих большее удельное электрическое сопротивление алюминиевых); 
  • применение технологии напряженного (растянутого) кремния – strained Si (увеличение расстояния между атомами кристаллической решетки уменьшает удельное электрическое сопротивление). 

Электронные и логические схемы некоторых базовых компонентов компьютера 

Логические операции AND, OR и NOT достаточно просто технически выполняются на любых системах элементов: и на электронных лампах, и на дискретных полупроводниковых элементах, и в интегральных схемах. Существуют многочисленные справочники, позволяющие выбрать подходящий вариант их технической реализации. 

Будем считать, что «1» представляется наличием положительного импульса, а «0» – его отсутствием. 

Простейшие принципиальные электрические схемы OR и AND на резисторно-диодных элементах и схема NOT на биполярном транзисторе показаны на рис. 11. 

Рисунок 11 – Схемы OR, AND, NOT на диодах и биполярном транзисторе 

Пояснения к схеме OR: положительный импульс на выходе возникает при появлении положительного импульса на любом (а, b, с) входе, так как внутреннее сопротивление диода в прямом направлении мало (много меньше R). 

Пояснения к схеме AND: положительный импульс на выходе возникает только при одновременном наличии положительных импульсов на всех трех (а, b, с) входах. При отсутствии хотя бы одного входного импульса соответствующий ему диод будет открыт и замкнет питающее напряжение +Е через внутренние сопротивления диода и источника входного сигнала (они много меньше R) на «землю». 

Пояснение к схеме NOT: при подаче на вход (базу) npn-транзистора положительного импульса триод откроется и на выходе (коллекторе) напряжение с высокого снизится практически до нуля. 

Триггеры 

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

Триггер – элемент, который может находиться в одном из двух устойчивых состояний, условно именуемых состояниями «0» и «1». Триггер имеет также два выхода: 

  • выход «0»; 
  • выход «1». 

Если триггер находится в состоянии «0», то у него на выходе q «высокое» напряжение (порядка нескольких вольт или даже меньше), на выходе q низкое (обычно нулевое) напряжение; если триггер находится в состоянии «0», то напряжения распределены наоборот. 

Триггеры могут иметь раздельные входы: 

  1. R (Reset) – вход установки «0»; 
  1. S (Set) – вход установки «1». 

Каждый вход устанавливает триггер в соответствующее состояние, такие триггеры часто называют RS-триггерами

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

Регистры 

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

Работа регистра: 

  1. Считывание информации из регистра: при подаче импульса считывания, опрашивающего схемы AND всех триггеров, на разрядные выходы а, поступит «1» через те вентили, триггеры которых были в состоянии «1». 
  1. Запись информации в регистр может выполняться в однотактном или двухтактном режимах. В однотактном режиме на соответствующий вход каждого триггера подается «1». В двухтактном режиме все входы R всех триггеров подключаются к одному проводу установки «0», по которому сначала все триггеры обнуляются, а затем на входы S тех триггеров, которые нужно установить в «1», подается соответствующий импульс.Разрыв страницы 

Счетчики 

На счетный вход каждого следующего триггера через вентили пройдет импульс со входа счетчика, только если все предыдущие триггеры стояли в состоянии «1». 

Импульс обнуления счетчика формируется от каждого 10-го импульса, поступающего на вход счетчика (при наличии в счетчике кода 1001, то есть 9). Запись информации в счетчик не через счетный вход и считывание показаний счетчика выполняются так же, как в двоичном регистре. 

6.2 Узлы ЭВМ 

Узлами ЭВМ являются стандартизованные наборы логических элементов, из которых, как из «кирпичиков», набираются схемы, входящие в состав микропроцессоров, блоков памяти, контроллеров внешних устройств и пр. 

Узлы ЭВМ разделяются на: 

  1. комбинационные, или узлы, выходные сигналы которых определяются только сигналом на входе, действующим в настоящий момент времени (например, дешифратор). Выходной сигнал дешифратора зависит только от двоичного кода, поданного на вход в настоящий момент времени. Комбинационные узлы называют также автоматами без памяти; 
  1. последовательностные (автоматы с памятью) – это узлы, выходной сигнал которых зависит не только от комбинации входных сигналов, действующих в настоящий момент времени, но и от предыдущего состояния узла (счетчик); 
  1. программируемые узлы функционируют в зависимости от того, какая программа в них записана. Например, программируемая логическая матрица (ПЛМ), которая в зависимости от встроенной («прожженной») в ней программы может выполнять функции сумматора, дешифратора, ПЗУ. 

Сумматоры 

Многоразрядный сумматор процессора состоит из полных одноразрядных сумматоров. На каждый разряд ставится одноразрядный сумматор, причем выход (перенос) сумматора младшего разряда подключен ко входу сумматора старшего разряда. 

Сумматор может быть построен в двух вариантах: 

  • комбинационная схема (последовательный сумматор); 
  • последовательностная схема (накапливающий сумматор).  

Последовательный сумматор осуществляет суммирование слагаемых и цифр переноса поразрядно начиная с младшего разряда. Основой его схемы является одноразрядный сумматор. 

В параллельном сумматоре все разряды операндов суммируются одновременно, но быстродействие снижается за счет времени передачи цифры переноса из младшего разряда/ 

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

Дешифраторы 

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

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

Простейший линейный дешифратор можно построить на диодной матрице. В этой схеме используется отрицательная логика. При подаче «1» на анод (коллектор) диода он закрывается. Если закрыты все три диода, подсоединенные к одной горизонтальной линии, то на этой линии появляется потенциал –Е, соответствующий уровню «1». 

Многокаскадный дешифратор можно организовать  следующим образом. Два линейных дешифратора обрабатывают по два слова. В последнем каскаде образуются конъюнкции выходного сигнала первого каскада. Многокаскадные дешифраторы обладают меньшим быстродействием. 

6.3 Логические операции, выполняемые в компьютере

В перечень машинных команд, которые используются при программировании, обязательно входят и некоторые логические операции. Чаще всего это операции OR (ИЛИ), AND (И), NOT (HE) и XOR (сложение по модулю 2, иначе – исключающее ИЛИ).

OR (ИЛИ) – логическое сложение

Таблица истинности операции OR:

a 0 0 1 1
b 0 1 0 1
a OR b 0 1 1 1

Команда выполняет поразрядную дизъюнкцию (логическое сложение – операцию OR) битов двух чисел; устанавливает 1 в тех битах результата, в которых была 1 хотя бы у одного из исходных операндов.

AND (И) – логическое умножение

Команда выполняет поразрядную конъюнкцию (логическое умножение – операцию AND) битов двух чисел; устанавливает 1 в тех битах результата, в которых у обоих исходных операндов были 1.

Таблица истинности операции AND:

a 0 0 1 1
b 0 1 0 1
a AND b 0 0 0 1

XOR (исключающее ИЛИ)

Команда выполняет операцию сложения по модулю 2 (отрицание равнозначности), устанавливает 1 в тех битах результата, в которых исходные числа отличались друг от друга.

Таблица истинности операции XOR

a 0 0 1 1
b 0 1 0 1
a XOR b 0 1 1 0

NOT (HE) – операция отрицания

Команда устанавливает обратное значение битов в числе (операция инверсии). Таблица истинности операции NOT:

a 0 0 1 1
NOT a 0 1 0 1

6.4 Алгоритмы и программы

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

Способы записи алгоритмов

Алгоритм должен быть понятен (доступен) пользователю и/или машине. Доступность пользователю означает, что он обязан отображаться посредством конкретных формализованных изобразительных средств, понятных пользователю. В качестве таких изобразительных средств используются следующие способы их записи:

  • словесный;
  • формульный;
  • табличный;
  • операторный;
  • графический;
  • макроязык программирования.

При словесном способе записи содержание последовательных этапов алгоритма описывается в произвольной форме на естественном языке.

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

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

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

Классификация и свойства алгоритмов

Алгоритмы, в соответствии с которыми решение поставленных задач сводится к арифметическим действиям, называются численными алгоритмами.

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

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

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

Поочередное выполнение команд алгоритма за конечное число шагов приводит к решению задачи, к достижению цели. Разделение выполнения решения задачи на отдельные операции (выполняемые исполнителем по определенным командам) – важное свойство алгоритмов, называемое дискретностью.

Анализ примеров различных алгоритмов показывает, что запись алгоритма распадается на отдельные указания исполнителю выполнить некоторое законченное действие. Каждое такое указание называется командой. Команды алгоритма выполняются одна за другой. После каждого шага исполнения алгоритма точно известно, какая команда должна выполняться следующей. Алгоритм представляет собой последовательность команд (также – инструкций, директив), определяющих действия исполнителя (субъекта или управляемого объекта).

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

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

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

Еще одно важное требование, предъявляемое к алгоритмам, – результативность (или конечность) алгоритма. Оно означает, что исполнение алгоритма должно закончиться за конечное число шагов. Поскольку разработка алгоритмов – процесс творческий, требующий умственных усилий и затрат времени, предпочтительно разрабатывать алгоритмы, обеспечивающие решения всего класса задач данного типа. Например, если составляется алгоритм решения кубического уравнения ах3 + 2 + сх + d = 0, то он должен быть вариативен, т. е. обеспечивать возможность решения для любых допустимых исходных значений коэффициентов а, b, с, d. Про такой алгоритм говорят, что он удовлетворяет требованию массовости. Свойство массовости не является необходимым свойством алгоритма. Оно скорее определяет качество алгоритма; в то же время свойства точности, понятности и конечности являются необходимыми (иначе это не алгоритм).