Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Логические функции
Основным понятием алгебры логики является высказывание.
Высказывание - это предположение, относительно которого имеет смысл утверждение
истинно оно или ложно. Высказывание не может быть одновременно истинно и
ложно. Аналогом равенства в алгебре логики является эквивалентность (=). Значение
высказывания может быть переменным в зависимости от значений других
высказываний входящих в его состав.
При логическом описании цифровых схем значения высказываний
обозначают цифрами. Как правило, истина описывается цифрой 1, а ложность –
цифрой 0.
инверсное и
С помощью девятой функции осуществляется побитовой сложение двоичных чисел
(0+0=0, 0+1=1, 1+0=1, 1+1=0 (как бы складываем в столбик: 0 пишем 1 переносим в
десятки))
Ситстемы
6.
1.
Формирование логических условий работы рассматриваемого узла пу-
тем составления таблицы его работы, или таблицы истинности, для
соответствующих логических функций. Таблица работы узла со-
ставляется непосредственно по заданным условиям его работы
ДНФ
Y = Q0 + Q3 + Q4 + Q5 + Q7 =
X1* X2* X3 + X1* X2* X3 + X1* X2* X3 + X1* X2* X3 + X1* X2* X3
Здесь для реализации схемы надо 5 элементов И, 3 инвертора, один элемент ИЛИ
КНФ
Y = X1 * X2 * X3 + X1 * X2 * X3 + X1 * X2 * X3 + X1 * X2 * X3 + X1 * X2 * X3 =
т. е. всего 6 элементов.
4. Классификация триггеров
Триггер (триггерная система) — класс электронных устройств, обладающих способностью
длительно находиться в одном из двух устойчивых состояний и чередовать их под
воздействием внешних сигналов. Каждое состояние триггера легко распознаётся по
значению выходного напряжения.
5.Функциональные свойства и реализация
триггеров, RS-триггеры.
Триггер — это запоминающий элемент с двумя (или более) устойчивыми состояниями,
изменение которых происходит под действием входных сигналов и предназначен для
хранения одного бита информации, то есть имеет состояния логического 0 или логической
1.
синхронный RS-тригер
асинхронный RS-тригер
RS-триггер, или SR-триггер (от англ. Set/Reset — установить/сбросить) — асинхронный
триггер, который сохраняет своё предыдущее состояние при неактивном состоянии обоих
входов и изменяет своё состояние при подаче на один из его входов активного уровня.
При подаче на оба входа активного уровня состояние триггера вообще говоря
неопределённо, но в конкретных реализациях на логических элементах оба выхода
принимают состояния либо логического нуля, либо логической 1. В зависимости от
конкретной реализации активным входным уровнем может быть как логическая 1, так и
логический 0. Так, в RS-триггере выполненном на 2 элементах 2И-НЕ активным входным
уровнем является логический 0.
При подаче активного уровня на вход S (от англ. Set — установить) выходное состояние
становится равным логической единице. А при подаче активного уровня на вход R (от англ.
Reset — сбросить) выходное состояние становится равным логическому нулю. Состояние,
при котором на оба входа R и S одновременно поданы активные уровни не определено и
зависит от реализации, например в триггере на элементах «или-не» оба выхода переходят
в состояние логической 0, которое сохраняется пока на входах удерживаются логические
1. Перевод одного из входов в неактивное состояние, в данном примере в логическую 0,
переводит триггер в одно из разрешённых устойчивых состояний. Одновременный
перевод обоих входов из активного в неактивное состояние вызывает непредсказуемое
переключение триггера в одно из устойчивых состояний.
RS-триггер используется для формирования сигнала с положительным и отрицательным
фронтами, отдельно управляемыми посредством подачи импульсов на входы, которые
разнесены во времени. Также RS-триггеры часто используются для исключения ложного
срабатывания цифровых устройств от так называемого «дребезга контактов».
T-триггер
JK-триггеры
7. Регистры.
Регистр - это элемент памяти, предназначенный для хранения и выдачи
информации представленной в виде двоичного кода. (хранение двоичных чисел)
Кроме того, регистры используются для преобразования последовательного кода в
параллельный и наоборот, для сдвига кода вправо или влево, что бывает необходимо
при выполнении арифметических операций и нормализации.
-В чисто двоичном n-разрядном регистре веса триггеров равны 20, 21, 23... , т.е. 1, 2, 4, 8,
… . Причем счет разрядов начинается с 0 – младший разряд и продолжается до n –
старший разряд регистра.
Параллельные регистры
Параллельные регистры принимают на входе n-разрядное двоичное число, все
разряды которого записываются в регистр одновременно (параллельно) за один такт.
Последовательные регистры
Последовательные регистры, их называют также сдвигающими, принимают
разряды числа последовательно, по очереди, начиная с младшего, за n-тактов.(на
основе D-тригеров более просто осуществляется)
Этот регистр — сдвигающий. Он осуществляет сдвиг вправо. Выход предыдущего
триггера присоединяется к входу D последующего. Благодаря такому включению,
каждый тактовый импульс устанавливает последующий триггер в состояние, в котором
до этого находился предыдущий, осуществляя тем самым сдвиг информации на разряд
вправо. (можно модифицировать и получить сдвиг влево)
-Если веса триггеров фиксированы, то сдвиг на одну позицию вправо ~ деление числа
на 2, влево ~ умножение на 2.
N — направление сдвига
●
суммирующий счетчик (каждый импульс на входе увеличивает код
хранимого в нем числа на единицу)
9. Дешифраторы и шифраторы.
Дешифраторы это логические узлы со многими входами и
выходами, переводящие некоторый многоразрядный
двоичный код в единичный позиционный код. При этом на
каждом из выходов сигнал равен единице (или нулю) только при
определенном сочетании входных сигналов. В общем случае для
n
n-разрядного кода полный дешифратор имеет n входов и 2
выходов. Рассмотрим трехразрядный двоичный дешифратор.
Таблица его состояний имеет вид:
Будем считать, что входной код на дешифратор подается с
некоторого регистра, имеющего как прямые, так и инверсные
выходы для хранимого кода. При этом схема дешифратора,
реализующая его таблицу состояний, упрощается, т.к. инверсные
сигналы можно не формировать, а использовать уже имеющиеся
инверсии.
Шифраторы реализуют преобразование из единичного
позиционного кода в взвешенный двоичный код, т.е. выполняют
обратную по oтношению к дешифраторам функцию. Рассмотрим
восьмиразрядный шифратор. Он преобразует входные сигналы в
трехразрядный двоичный код, поэтому его таблица истинности
такая же, как у соответствующего ему дешифратора. С той
только разницей, что входы и выходы в ней меняются местами.
10. Полусумматор и сумматор.
Сумматоры предназначены для проведения операций
суммирования с многоразрядными двоичными числами. Часто
сумматоры работают во взаимодействии с регистрами,
обеспечивающими хранение исходных кодов и результатов их
сложения. Операция вычитания сводится к суммированию чисел
в прямом и дополнительном коде и поэтому также выполняется
при помощи сумматора.
Рассмотрим операцию суммирования одноразрядного двоичного
числа, с помощью которой можно реализовать суммирование
многоразрядных чисел. Пусть складываем два одноразрядных
числа a и b. Операция их суммирования характеризуется
следующей таблицей истинности:
Принцип адресности.
Основная память состоит из перенумерованных ячеек, и процессору в
произвольный момент времени доступна любая ячейка.
Отсюда следует возможность давать имена областям памяти так, чтобы к
запомненным в них значениям можно было впоследствии обращаться или
менять их в процессе выполнения программ с использованием
присвоенных имен.
Обработка информации на ЭВМ сводится к логическим и арифметическим
операциям над двоичными числами.
Арифметико-логическое устройство
Часть процессора, в которой выполняются операции, называется
арифметико-логическим устройством (АЛУ).
Операции
Арифметические Логические
Сложение Сравнение
Сдвиг двоичных чисел Выделение части числа
С помощью дополнительного кода Арифметический и логический сдвиг
все остальные
Методы адресации:
Непосредственная Вместо адреса сам операнд
Абсолютная(прямая) Полный адрес ячейки
Косвенная Ссылка на ссылку на ячейку
Регистровая Регистр указывает на операнд
Косвенно-регистровая Указатель на адрес операнда
Регистровая относительная Сумма данных регистра и смещения
указывает на операнд
Базово индексная Сумма в базовом и индексном
регистре указывает на операнд
Относительно базово индексная Сумма базового регистра, индексного
регистра и смещения указывает на
операнд
План:
1. 6 систем команд
2. Команда ЭВМ: одно-, двух-, трех-адресные
3. Методы адресации
● Постоянная
● Оперативная
● Кэш-память
● ROM
● PROM
● EPROM
● EEPROM
● Flash Memory
Так же, как и в ПЗУ, без стирания можно записать нули в уже
запрограммированные ячейки. Фактически при операции записи
производится два действия: запись и считывание, но управление этими
операциями производится внутренним автоматом и "прозрачно" для
процессора.
ОСАТКИ ПРЕЗЕНТАЦИИ
Энергонезависимую память, запись в которую производят при регулярной
работе, называют NVRAM (Non-Volatile Random Access Memory). Это
название подчеркивает возможность произвольной смены информации не
только во всей ее области, но и в отдельной ячейке или небольшом блоке.
· Место для области данных BIOS, 768 байт. Здесь размещены, например,
счетчик таймера, буфер клавиатуры и другая внутренняя информация
Так как объем основ.памяти > объема кэш, то на каждую строку кэш может
претендовать множество соответствующих ей строк основ.памяти, находящихся на
разных страницах. 1 строка кэш в определенный момент времени может содержать
копию только одной соответствующей ей строки из множества страниц основ.памяти.
Память тэгов обязательно должна иметь кол-во ячеек, равное количеству строк
кэша, а её разрядность должна быть достаточной для хранения значений тэгов, а
также флагов действительности и модификации. Пример: рис.1 пусть имеем кэш,
объемом 256 Кб с размером строки 32 байта, а объем кэшируемой памяти составляет
64 Мб. Тогда такой кэш содержит 256К/32 = 8К строк. При этом основная память
условно будет разбита на 256 страниц, содержащих по 8К строк каждая.
В кэш-каталоге хранятся: бит признака действительности V и бит признака
модифицированности данных M.
В самом простом случае набор состоит из двух строк, и блок из памяти может
помещаться в одну из них. Кэш должен содержать 2 банка тэгов, а кэш-каталог должен
состоять из двух частей.
1-ая часть каталога связана с первым банком тэга, а 2-ая со вторым. Также в
кэш-каталоге дополнительно должен быть признак, определяющий, какая строка из
набора подлежит замещению.
CISC (complex instruction set computing или complex instruction set computer) —
компьютер со сложным (полным) набором команд (инструкций), тип процессорной
архитектуры, которая характеризуется следующим набором свойств:
При этом поздние х86-процессоры (Intel Pentium 4, Pentium D, Core, AMD Athlon,
Phenom), хотя и CISC-совместимы, но являются процессорами с RISC-ядром, и в
формальном смысле считаются гибридными. В таких гибридных CISC-процессорах
CISC-инструкции преобразовываются в набор внутренних RISC-команд, при этом одна
команда x86 может порождать несколько RISC-команд, исполнение команд происходит
на суперскалярном конвейере одновременно по несколько штук.
В силу того, что сам процессор 16-ти разрядный, а шина 20-тиразрядная, он мог
адресовать напрямую только 64 Кб памяти. Для устранения противоречия в
процессоре реализован сегментный механизм адресации.
Ряд отличий
Кроме более плотной компоновки кристалла и повышения тактовой частоты, 16-
разрядные микропроцессоры имеют ряд отличий, не использовавшихся в
микропроцессорах предыдущих поколений:
Эти процессоры имеют 64-х разрядную шину данных (80386 — 32-х разрядную) и 32-х
разрядную шину памяти, поэтому их нельзя считать полноценными 64-х разрядными
процессорами. Они могут оперировать с 8, 16, 32-битными операндами, строками
байт, слов, двойных слов, битами, битовыми полями и строками бит. В архитектуру
процессоров введены средства отладки и тестирования.
• регистры отладки;
• регистры тестирования.
Философия RISC
Оперативная память стала дешеветь, компиляторы стали лучше, а большинство
разработчиков перестало писать на ассемблере.
Вы можете сказать, что здесь применимо правило 80/20: примерно 80% времени
тратится на выполнение 20% инструкций.
RISC-код может быть непростым для человека. Много лет назад я совершил ошибку,
когда решил, что самостоятельное написание ассемблерного кода для PowerPC
(архитектура IBM RISC с огромным количеством инструкций) сэкономит мое время.
Это принесло мне множество лишней работы и разочарований.
Одним из аргументов RISC было то, что люди перестали писать ассемблерный код,
поэтому необходимо создать набор инструкций, удобный для компиляторов.
Архитектура RISC оптимизирована для компиляторов, но не для людей.
Хотя есть некоторые наборы команд RISC, при использовании которых людям
кажется, что они просты для изучения. С другой стороны, при использовании RISC
часто нужно писать больше команд, чем в случае CISC.
●
(Fetch) Извлечение инструкции из памяти и увеличение счетчика
команд, чтобы извлечь следующую инструкцию в следующем
такте.
Особенности RISC:
1)Инструкции ARM состоят из секций, каждая из которых работает с одним из этих
этапов, а выполнение этапа обычно занимает один такт. То есть инструкции ARM
очень удобно конвейеризировать.
Конвейеризация — это особенность, которая позволила первым RISC-процессорам на
голову обогнать своих конкурентов в тестах производительности.
2)Чтобы количество тактов, необходимых для каждой инструкции, было примерно
одинаковым и удобным для конвейеризации, набор инструкций RISC четко отделяет
загрузку из памяти и сохранение в память от остальных инструкций.
3)Большая проблема для RISC — это упрощение инструкций, что ведет к увеличению
их количества. Больше инструкций требуют больше памяти — недорогой, но
медленной. Если программа RISC потребляет больше памяти, чем программа CISC, то
она будет медленнее, так как процессор будет постоянно ждать медленного чтения из
памяти. Инструкции RISC проще для компилятора но сложнее для человека.
4)Для оптимизации памяти были придуманы сжатые наборы инструкций.
5)Кэши — это специальная форма очень быстрой памяти, которая располагается на
микросхеме процессора. Они занимают дорогостоящую кремниевую площадь,
необходимую процессору, поэтому есть ограничения по размеру кэшей.
Таким образом, имея большие кэши, процессоры RISC компенсировали то, что их
программы больше, чем программы CISC.
6)Набор инструкций CISC не проектировался для конвейеризации. Следовательно,
разбиение этих инструкций на микрооперации — сложная задача, которая не всегда
решается эффективно. Перевод инструкций RISC в микрооперации обычно бывает
более простым.
Плюсы и минусы:
За счет выноса работы по распределению ресурсов в компилятор можно
сделать саму аппаратную часть процессора проще, больше места на
кристалле останется на собственно исполнительные блоки, регистры, кэш-
память. Во-вторых, компилятор может провести более тщательный анализ
программы, и лучше распределить ресурсы.
В то же время код для VLIW обладает невысокой плотностью. Из-за большого
количества пустых инструкций для простаивающих устройств программы для
VLIW-процессоров могут быть гораздо длиннее, чем аналогичные программы
для традиционных архитектур. (ещё длиннее чем у RISC)
Архитектура VLIW выглядит довольно экзотической и непривычной для
программиста. Из-за сложных внутренних зависимостей кода
программирование вручную, на уровне машинных кодов для VLIW-архитектур,
является достаточно сложным. Приходится полагаться на оптимизацию
компилятора.
1. Центральные процессоры .
2. Модули памяти .
3. Интерфейсы.
4. Каналы связи.
5. Коммутаторы.
●
топология (то есть способ расположения компонентов,
например, кольцо, решетка или сетка, двойной тор, куб)
●
SISD (Single Instruction stream Single Data stream) -
классический последовательный компьютер фон Неймана -
может выполнять только одно действие в конкретный момент
COW (или NOW) - рабочие станции, связанные с помощью уже имеющейся технологии
соединения
Если все процессоры имеют равный доступ ко всем модулям памяти и всем
устройствам ввода-вывода и каждый процессор взаимозаменим с другими процессорами, то
такая система называется SMP (Symmetric Multiprocessor — симметричный мультипроцессор).
Модели согласованности
Параллельность накладывает некоторые трудности: основная проблема здесь — каковы
должны быть правила в согласовании единых данных между процессорами при совместном
использовании данных (в кэше и оперативной памяти). Эти правила называются моделями
согласованности. Было предложено и разработано множество таких правил.
1.
Все процессоры воспринимают записи любого процессора в том
порядке, в котором они начинаются.
Два или более процессоров и один или несколько модулей памяти используют для
взаимодействия одну и ту же шину. Если процессору нужно считать слово из памяти, он
сначала проверяет, свободна ли шина. Если шина свободна, процессор помещает адрес
нужного слова на шину, устанавливает несколько сигналов управления и ждет, когда память
поместит на шину нужное слово. Если шина занята, процессор просто ждет, когда она
освободится. Это все упирается в пропускную способность шины, что ограничивает
производительность, если процессоров много.
Чтобы разрешить эту проблему, нужно добавить кэш-память к каждому процессору.
Поскольку теперь считывать слова можно из кэш-памяти, движения в шине будет меньше, и
система сможет поддерживать большее количество процессоров.
При отсутствии специальных правил процессор 2 получит копию этой строки в свою
кэш-память. В принципе помещение одной и той же строки в кэш-память дважды вполне
приемлемо. А теперь предположим, что процессор 1 изменяет строку, и сразу после этого
процессор 2 считывает копию этой строки из своей кэш-памяти. Он получит устаревшие
данные, нарушая контракт между программным обеспечением и памятью. Ни к чему хорошему
это не приведет.
В случае промаха кэш-памяти при записи слово, которое было изменено, записывается в
основную память. Строка, содержащая нужное слово, не загружается в кэш-память . В случае
результативного обращения к кэш-памяти при записи кэш обновляется, а слово плюс ко всему
записывается в основную память . Суть протокола состоит в том, что в результате всех
операций записи записываемое слово обязательно проходит через основную память, чтобы
информация в основной памяти всегда обновлялась.
Возможны различные вариации этого основного протокола. Например, при успешной записи
отслеживающий кэш обычно объявляет недействительным элемент, содержащий данное слово.
С другой стороны, вместо того чтобы объявлять слово недействительным, можно принять
новое значение и обновить кэш-память . По существу, обновить кэш-память — это то же
самое, что признать слово недействительным, а затем считать нужное слово из основной
памяти.
1.
Invalid — элемент кэш-памяти содержит недействительные данные.
2. Shared — несколько кэш могут содержать данную строку; основная
память обновлена.
3. Exclusive — никакой другой кэш не содержит эту строку; основная
память обновлена.
4. Modified — элемент действителен; основная память недействительна;
копий элемента не существует.
А теперь рассмотрим, что будет, если процессор 3 считывает эту строку. Процессор 2, который
в данный момент содержит строку, знает, что копия в основной памяти недействительна,
поэтому он передает на шину сигнал, чтобы процессор 3 подождал, пока он запишет строку
обратно в память. Как только строка записана в основную память, процессор 3 вызывает из
памяти копию этой строки, и в обоих кэш строка помечается как S. Затем процессор 2
записывает эту строку снова, что делает недействительной копию в кэш-памяти процессора 3.
Затем процессор 2 записывает эту строку снова, что делает недействительной копию в кэш-
памяти процессора 3 .
Наконец, процессор 1 производит запись в слово в этой строке. Процессор 2 видит это и
передает на шину сигнал, который сообщает процессору 1, что нужно подождать, пока строка
не будет записана в основную память. Когда это действие закончится, процессор помечает
собственную копию строки как недействительную, поскольку он знает, что другой процессор
собирается изменить ее. Появляется ситуация, в которой процессор записывает что-либо в
некэшированную строку. Если применяется политика write-allocate, строка будет загружаться в
кэш-память и помечаться как М. Если политика write-allocate не применяется, запись будет
производиться непосредственно в основную память, а строка в кэш-памяти сохранена не будет.