Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
От формул к процессору/@K |

15.11.2008, 13:54
|
|
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме: 73318
Репутация:
0
|
|
От формул к процессору/@K
Часть I
Привет всем.
Этим уроком я открываю цикл статей посвященных – логике, и самое главное логическим основам работы процессора. Вы поймете, как работает процессор на физическом и логическом уровнях. И возможно, захотите собрать эту не большую вещицу – своими руками!
Но для начала нам нужно изучить формальную логику и начнем с основных логических операций:
Всего может быть два возможных состояния – Сильный сигнал и Слабый, Истинна и Ложь, 1 и 0.
Первая логическая операция.
Логическое отрицание - ИНВЕРСИЯ - если исходное выражение истинно, то результат отрицания будет ложным, и наоборот, если исходное выражение ложно, то результат отрицания будет истинным. Например:
A ____неА
1_____ 0
0_____1
С = A & B.
Вторая логическая операция.
Логическое умножение - КОНЪЮНКЦИЯ - это выражение будет истинно в одном случае, когда оба значения верны. Например, высказывание “Дождь будет утром и вечером”, верно только в одном случае если дождь будет и утром и вечером, а ложно, если дождь будет вечером, а утром не будет и наоборот.
A & B = С
1__1= 1
1__0= 0
0__1= 0
0__0= 0
То есть Истинна и Истинна = Истинна
Истинна и Ложь = Ложь
Ложь и Истинна =Ложь
Ложь и Ложь = Ложь
Как и говорил, наше выражение будет истинным только в одном случае.
Третья логическая операция.
С = A + B
Логическое сложение – ДИЗЪЮНКЦИЯ - это выражение будет истинно во всех случаях, кроме одного, когда оба значения ложны. Например, высказывание Дождь будет утром или вечером, означает следующее – Дождь будет только вечером, - Дождь будет только утром, - Дождь будет и утром и вечером. Но из-за характерных особенностей русского языка многие считают, что это высказывание означает, Дождь будет только вечером, либо Дождь будет только утром, а третьего в расчет не берут.
A + B = С
1__1= 1
1__0= 1
0__1= 1
0__0= 0
То есть Истинна или Истинна = Истинна
Истинна или Ложь = Истинна
Ложь или Истинна = Истинна
Ложь или Ложь = Ложь
Как и говорил, наше выражение будет ложно только в одном случае.
Четвертая логическая операция.
Логическое следование: ИМПЛИКАЦИЯ - связывает два простых логических выражения, из которых первое является условием , а второе – следствием из условия. Это было научное определение так сказать, а сейчас объясню, что все это значит = короче представьте вам дали решить задачу, и условия к этой задачи тоже дали(исходные данные), вам осталась подумать над решением. Рассмотрим эту ситуацию:
Вам дали правильные исходные данные к задаче – решали правильно, значит решили правильно(истинно).
Вам дали правильные исходные данные к задаче – но решали не правильно, значит решили неправильно(ложь).
Вам дали неправильные исходные данные к задаче – но решали вы все равно правильно(чудо), значит решили правильно(истинна).
Вам дали неправильные исходные данные к задаче – решали неправильно, значит решили неправильно(истинна). Спросите почему Истинна? А как вы могли решить если исходные данные не верны, значит в итоге истинна.
A B = С
1__1= 1
1__0 =0
0__1= 1
0__0= 1
Ложь тока в одном случае, когда думали не правильно.
Пятая логическая операция.
Логическая равнозначность: ЭКВИВАЛЕНТНОСТЬ - определяет результат сравнения двух простых логических выражений А и В. Результатом ЭКВИВАЛЕНТНОСТИ является новое логическое выражение, которое будет истинным тогда и только тогда, когда оба исходных выражения одновременно истинны или ложны. Короче истина ЭКВИВАЛЕНТНА истине. А ложь ЭКВИВАЛЕНТНА лжи.
A B = С
1__1 = 1
1__0 = 0
0__1 = 0
0__0 =1
Э то основные логические операции, через них можно выразить все остальные. Хотя ели сказать по секрету, то основных операции всего три
Логическое отрицание - ИНВЕРСИЯ
Логическое умножение - КОНЪЮНКЦИЯ
Логическое сложение – ДИЗЪЮНКЦИЯ
Через них выражаются и ИМПЛИКАЦИЯ, и ЭКВИВАЛЕНЦИЯ и остальные. В последующих статьях мы это разберем - а пока усвойте этот материал. И если усвоите, то вы на шаг приблизитесь к пониманию работы процессора и всего остального.
(c)Kerny
Последний раз редактировалось -=Kern=-; 23.01.2009 в 00:39..
|
|
|

15.11.2008, 14:21
|
|
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме: 73318
Репутация:
0
|
|
Часть II
Привет всем – надеюсь вы хорошо усвоили материал прошлой статьи! сегодня мы изучим правила преобразования логических выражений….
Так для начала условимся – Логическое произведение (КОНЬЮНКЦИЯ) – записываем так A*B (логическое произведение А на В) или можно еще записывать так А&B.
Логическое сложение (ДИЗЪЮНКЦИЯ) – записываем так А+В , можно еще записать по другому на клавиатура мне не позволяет….
Логическое отрицание (ИНВЕРСИЯ) – записывать будем, как неА.
Закон непротиворечия
Закон непротиворечия, означает следующее A не может быть равно своему отрицанию,
неA *A=0
Например есть выражение A *неA+B, догадайтесь чему оно будет равно? Правильно A *неA+B=B.
Закон исключения третьего
Высказывание может быть либо истинным либо ложным, третьего не дано. Это означает, что результат логического сложения высказывания и его отрицания принимает значение истинна.
А+неА=1
Да и незабываем , 1 - это истинна, 0 – это ложь. Что бы, было легче можно представлять , так «+», это «или», «*» - это «и», а инверсия – тут и так понятно….
Закон двойного отрицания
Если выражение дважды отрицается, то в результате мы получим исходное высказывание. Например:
ненеА=А
Так же, как в Алгебре минус на минус - дает плюс.
Закон тождества
Всякое высказывание тождественно самому себе. Например А=А.
Законы Моргана:
Первый закон Де Моргана.
не(А + В)= неА* неВ
Отрицание выражения (А или В) равно неА и неБ, давайте проверим!? Для этого построим так называемую таблицу истинности:
А______В_____неА____неВ__(А+В)__Не(А+ В)___неА* неВ
0______0______1______1_____0______1_________1
0______1______1______0_____1______0_________0
1______0______0______1_____1______0_________0
1______1______0______0_____1______0_________0
Сначала, даем начальные значения А и Б, затем их инвертируем, после подвергаем значения А и В дизъюнкции (операция «или»), затем то, что получилось инвертируем и получаем – одну единицу и три нуля… Теперь берем значения неА и неВ и подвергаем коньюнкции(логическое умножение) и в результате получаем , единицу и три ноля… тоесть не(А + В)= неА* неВ, формула верна
Второй закон Де Моргана.
не(А*В)= неА + неВ
А______В______неА___неВ__(А*В)___Не(А *В) ______неА+ неВ
0______0______ 1_____1______0______1_____________1
0______1______ 1_____0______0______1_____________1
1______0______ 0_____1______0______1_____________1
1______1______ 0_____0______1______0_____________0
Тоже самое здесь - формула верна. Мы сейчас строили таблицы истинности – вообще-то это проходится по информатике….
А теперь пару примеров:
Не(А+В)*(А*неВ)
Начнем, видим в первой части выражения не(А+В) – первый закон Де Моргана – преобразовываем:
НеА*неВ*(А*неВ), раскроем скобки
НеА*неВ*А*неВ, видим неА и А, - закон непротиворечия .
Остается
0*НеВ*неВ
Смотрим НеВ*неВ, ага это равно просто неВ, спросите почему? Допустим есть некое третье значение например, значение С.
С*неВ*неВ=С*неВ, допустим С=0
А неВ равно 1, тогда
0*1*1=0, а это тоже самое что и 0*1.
Вот и получается, что неВ*неВ, равно просто неВ. Так вернёмся к примеру:
Получаем,
0*неВ=0, тут можно пойти двумя путями, первый я назвал его алгебраический – умножение на ноль всегда дает ноль, или второй логический:
У нас операция конъюнкция(вспоминаем союз «и») а эта операция так сказать истинна только в одном случае, когда оба значения истинны, тоесть 1*1=1, смотрим на первый множитель нашего выражения он уже равен нолю… Значит чему бы небыло равно, значение неВ, хоть 1 хоть 0, всегда будет ложь(ноль). В принципе остальные примеры решаются также.
Наверное, сейчас вы задаетесь мыслями, а зачем это? Хотел написать ответ в этой статье, но передумал, скажу лишь, что узнаете в последующих статьях. Это только начало!
(c)Kerny
Последний раз редактировалось -=Kern=-; 15.11.2008 в 14:53..
|
|
|

15.11.2008, 14:37
|
|
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме: 73318
Репутация:
0
|
|
Часть III
Привет всем!
Итак, третья статья из цикла!
Приступим!
Помните, я вам говорил, что всего логических операции три, и что через них выражаются все остальные, так вот сегодня мы рассмотрим это.
Значит, начнем с эквиваленции
Как мы помним, она выглядит так
A _________B ________С
1__________1________1
1__________0________0
0__________1________0
0__________0________1
Получается, что мы должны найти выражение, состоящее из простых логических операций (инверсия, конъюнкция, дизъюнкция), которое бы в результате давало см. таблицу. Ну что ж попробуем подобрать нужную нам формулу….
Будем брать тока первую строку из нашей таблицы:
A _________B ________С
1__________1________1
Тоесть при значениях А=1, B=1, нужно получить значение С=1. В чем проблема? - спросите вы. Это же обычная конъюнкция 1*1=1, Да это конъюнкция, но она нам не подходит – не забываем, что мы должны решить задачу в общем виде – заменим выражение 1*1=1 формулой А*В=С, и попробуем, подставить другие значения например 0*0=0, и видим, что это не подходит т.к при эквиваленции 0*0=1, а теперь не большой секрет – то, что я только что вам втирал можно было опровергнуть иначе, просто подумав – это же одна логическая операция – конъюнкция, а конъюнкция не может быть равна эквиваленции, отсюда вывод в нашей формуле должно быть больше одной логической операции, и еще если вы хорошо усвоили предыдущий материал, то должны знать, что 1*1*1=1, тоже не подойдет, т. к после преобразования получиться 1*1=1, отсюда еще один вывод, наша формула не должна преобразовываться, найдем нашу формулу:
Пробуем разные комбинации, ниже подставляем вместо букв значения и сравниваем их с таблицей эквиваленции …
________________
A*B+B=C
1*1+1=1
1*0+0=0
0*1+1=1
Уже не подходит.
____________________
A*B+А*B=C
1*1+1*1=1
1*0+1*0=0
0*0+0*0=0
не подходит
____________________
A*B+неА*неB=C
1*1+не1*не1=1
1*0+не1*не0=0
0*1+не0*не1=0
0*0+не0*не0=1
____________________
Ура! Нашли нужную нам формулу!
Итак, мы выяснили, что эквиваленцию можно выразить следующей формулой :
A*B+неА*неB=C
Импликацию мы не будем выражать, я показал вам лишь ход мыслей….
Формула импликации: неА+В
A _________B ________С
1__________1________1
1__________0________0
0__________1________1
0__________0________1
А теперь, рассмотрим, как это все изображается – схемами. Люди знакомые с программированием знают, что алгоритм программы можно изображать в виде блок схем, так вот здесь это тоже имеет место быть…. И это называется это логическими схемами.
Так как, основных логических операций всего три, то и логических элементов будет три…
Смотрите рисунок:
____________________________

____________________________
Итак, вы видите коньюнктор, у него всегда два входа и один выход, на вход подаются А и В (для отличия его от дизъюнктора добавляется символ & см. рисунок), в результате на выходе будет А*В, например:
Подаются значения 1 и 0, в результате будет 0.
Ниже дизъюнктор , у него всегда два входа и один выход, на вход подаются А и В (для отличия его от коньюнктора добавляется символ 1 см. рисунок), в результате на выходе будет А+В, например:
Подаются значения 1 и 0, в результате будет 1.
И последний элемент инвертор, у него один вход и один выход, если на вход подать 1 то результатом будет 0 и наоборот.
Это так сказать промежуточная статья – так, что не ругайте…. Скоро будет еще интереснее.
(c)Kerny
Последний раз редактировалось -=Kern=-; 15.11.2008 в 14:58..
|
|
|

15.11.2008, 14:41
|
|
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме: 73318
Репутация:
0
|
|
Часть IV
Приступим, в предыдущей статье мы рассмотрели основные логические элементы, теперь разберемся с логическими схемами, попробуем построить схему для логического выражения
B∙неА+неB∙A=C
______________________________

______________________________
Надеюсь, принцип вы поняли. Теперь рассмотрим физическую реализацию логических элементов,
Начнем с элемента “не”.
______________________________

______________________________
Как видим на рисунке если подаем 0, то ничего не происходит…. Если 1, то канал закрывается и газ не проходит(может быть и жидкость). Надеюсь понятно.
Логическое сложение:
______________________________

______________________________
Как видим из рисунка, у нас получается:
A _________B ________С
1__________1________0
1__________0________0
0__________1________0
0__________0________1
А, надо:
A _________B ________С
1__________1________1
1__________0________1
0__________1________1
0__________0________0
Что ж - это не проблема, нам всего лишь нужно инвертировать полученный результат
A _________B ________С________неС
1__________1________0________1
1__________0________0________1
0__________1________0________1
0__________0________1________0
А при физической реализации, добавить в схему инвертор.
Логическое умножение:
______________________________

______________________________
И тут тоже придется добавить инвертор.
A _________B ________С________неС
1__________1________0________1
1__________0________1________0
0__________1________1________0
0__________0________1________0
Что ж вот основной принцип…
А теперь займемся непосредственно формулами и логическими схемами, сегодня нам предстоит не много не мало, а придумать схему так называемого «полусумматора двоичных чисел», ведь мы знаем, что достаточно научить схему одному арифметическому действию – сложению, и получим какой ни какой, а процессор!
Так, за помощь обратимся к двоичной системе счисления, попробуем сложить в двоичной системе, числа, имеется в виду не логическое сложение, а арифметическое.
1+1=10
1+0=1
0+1=1
0+0=0
Можете проверить с помощью калькулятора Windows.
Что бы вам легче было понять, составим таблицу:
(Арифметическое сложение, а не логическое, обратите внимание на знак «=», p s идут как одно число, это для того, что бы было видно разрядность числа )
A ____+____B ____=___P________S
1__________1________1________0
1__________0________0________1
0__________1________0________1
0__________0________0________0
A и В, числа которые складываем (в двоичной системе счисления), S – результат сложения (сумма), P – перенос из разряда, это нужно для случая 1+1=10, так как здесь, получается 10 (правильно говорить не десять, а один и ноль), то 1 пойдет в перенос (P) , а 0 в сумму (s), таким образом значение суммы(s) 0,1,1,0, значит мы должны найти такую формулу, при которой
(Арифметическое сложение, а не логическое)
A ____+____B _____=_____S
1__________1___________0
1__________0___________1
0__________1___________1
0__________0___________0
В одной из статей я показывал, как это делается – простым подбором. Вот искомая формула:
S=(A+B)*не(A*B)
Можете её проверить, вы это уже умеете.
Для переноса (P)
(Арифметическое сложение, а не логическое)
A ____+____B _____=_____P
1__________1___________1
1__________0___________0
0__________1___________0
0__________0___________0
Тут и думать нечего, P=A*B, начертим логическую схему полусумматора двоичных чисел:
______________________________

______________________________
Надеюсь, вы все поняли, в следующих статьях мы разберем, как данные логические схемы реализовывать радиотехнически, и тп.
Если же здесь есть механик, то он может взять сварочный аппарат и сделать механический полусумматор двоичных чисел  ))
Желаю удачи!
(c)Kerny
Последний раз редактировалось -=Kern=-; 15.11.2008 в 14:48..
|
|
|

15.11.2008, 19:45
|
|
Постоянный
Регистрация: 01.09.2007
Сообщений: 866
Провел на форуме: 2022674
Репутация:
1224
|
|
начало дискретной алгебры,это знает любой
тему в топку
|
|
|

19.11.2008, 16:08
|
|
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме: 73318
Репутация:
0
|
|
ЭМ.. не согласен
|
|
|

19.11.2008, 16:21
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме: 3629857
Репутация:
504
|
|
учебник по дискретке копипастить не круто
|
|
|

19.11.2008, 16:28
|
|
Новичок
Регистрация: 10.05.2008
Сообщений: 4
Провел на форуме: 73318
Репутация:
0
|
|
Сообщение от gisTy
учебник по дискретке копипастить не круто
Я и не копипастил...
|
|
|

19.11.2008, 19:34
|
|
Banned
Регистрация: 30.11.2007
Сообщений: 114
Провел на форуме: 2077503
Репутация:
54
|
|
а зачем это знать?
|
|
|

19.11.2008, 19:41
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме: 9257858
Репутация:
979
|
|
Если на программиста учишься,этому всегда учат 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|