lecture5 log osnovi bool algebra

43
Логически основи. Булева алгебра. Производителност на компютърни системи Тема 5

Upload: tanya-nikolova

Post on 03-Oct-2014

131 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture5 Log Osnovi Bool Algebra

Логически основи. Булева алгебра. Производителност на компютърни системи

Тема 5

Page 2: Lecture5 Log Osnovi Bool Algebra

Въведение в булевата алгебра

• Създадена и развита през 1854 от Джордж Бул в книгата си “Изследване на законите на мисленето”. Представлява вариант на елементарна алгебра с разлика в своите стойности, операции и закони. При нея има стойности 0 и 1 или подмножество на дадено множество. Операциите са конюнкция ^, дизюнкция vи отрицание с константи 0 и 1. Законите се дефинират с уравнения за всички стойности за променливите – напр. x∨(y∧x) = x.

• Булевата алгебра се прилага в математическата логика, цифровата логика, компютърното програмиране, теорията на множествата и статистиката.

Page 3: Lecture5 Log Osnovi Bool Algebra

Въведение в булевата алгебра

• Докато елементарната (познатата от средното образование) алгебра борави с реални числа, булевата алгебра работи със стойностите 0 и 1. Те могат да се считат както за 2 цели числа, така и за истинни стойности наричани “истина” и “неистина”

• Както и да се наричат, те представляват двоични числа и се наричат битове, за разлика от десетичните числа от 0 до 9

• Булевата алгебра работи и с други стойности, за които булевите операции може да се дефинират – например множества или низове/поредици от битове.

Page 4: Lecture5 Log Osnovi Bool Algebra

Въведение в булевата алгебра

• За разлика от други алгебрични системи, булевата алгебра се подчинява на едни и същи закони (свойства на равенства), нито повече, нито по-малко – възможно е да се разглежда булевата алгебра и без отнасяне към други стойности освен 0 и 1.

• През 30-те години на 20 век, докато е изучавал превключващи вериги, Клод Шанон (лабораториите Бел) е наблюдавал, че може да приложи правилата на булевата алгебра за тези вериги и е въвел “превключваща алгебра” (switching algebra) като начин за анализ и проектиране на вериги с алгебрични средства от гледна точка на логически елементи (logic gates).

Page 5: Lecture5 Log Osnovi Bool Algebra

Въведение в булевата алгебра

• Шанон използва абстрактен математически апарат и представя своята превключваща алгебра като булева алгебра с 2 елемента. Днес двете понятия (превключваща и булева) са взаимнозаменяеми.

• Ефективното прилагане на булевите функции е фундаментален проблем в проектирането на комбинаторни вериги. Модерните средства за автоматично проектиране на големи вериги (VLSI circuits) се опира на ефективното представяне на булевите функции (диаграми с двоични решения) за синтез на логически схеми и формална верификация

Page 6: Lecture5 Log Osnovi Bool Algebra

Таблица на истинност• 1854 – Дж Бул.• Двоичните функции се задават с таблица на истинност сочеща

какви стойности има функцията за всички възможни комбинации на променливите и

• Изходите се изчисляват за всички възможни комбинации на входовете (колко комбинации има)

• Стая с 2 ключа за лампата. Как работи?

Ключ A Ключ B

GND

“Hot”Лампа Z

A B Z

0 00 11 01 1

0110

Page 7: Lecture5 Log Osnovi Bool Algebra

Съждения

• Някои действия от традиционната алгебра като умножение (ХУ), събиране (Х+У) и отрицание (-Х) имат съответствията си в булевата алгебра –операциите конюнкция, дизюнкция и инверсия (или допълнение)

• И (наричана още конюнкция) - x∧y, • ИЛИ (дизюнкция) - x∨y• НЕ - x, понякога с !x

Page 8: Lecture5 Log Osnovi Bool Algebra

Булеви изрази

• Принципът на дуалността:

• – дуалността за една булева функция се постига при замяна на И с ИЛИ и на ИЛИ с И, 1-ци с 0-ли и 0-ли с 1-ци

• Позитивна логика И• Негативна логика ИЛИ

0

0

0

1

0

1

0

1

0

0

1

1

FBA

1

1

1

0

1

0

1

0

1

1

0

0

FBA

Page 9: Lecture5 Log Osnovi Bool Algebra

Представяне на позитивна/негативна логика

• Положителна логика: логически 1 се представя с високо напрежение, логическа 0 – с ниско

• Отрицателна логика: логическа 0 се представя с високо напрежение, логическа 1 – с ниско

• Нормалното представяне е: положителна логика – активно високо напрежение

• Ниско напрежение = 0; Високо напрежение = 1

• Алтернативното представяне е: негативна/отрицателна логика – активно ниско напрежение

• Ниско напрежение = 1; Високо напрежение = 0

Page 10: Lecture5 Log Osnovi Bool Algebra

Представяне на позитивна/негативна логика

F

Поведение от гл т на електрически нива

две алтернативни представяния

Позитивна логика И

Негативна логика ИЛИ

low

low

low

high

low

high

low

high

low

low

high

high

FBA

0

0

0

1

0

1

0

1

0

0

1

1

FBA

1

1

1

0

1

0

1

0

1

1

0

0

FBA

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

Позитивна логика Негативна логика

Допълващи се

операции

Page 11: Lecture5 Log Osnovi Bool Algebra

Представяне на позитивна/негативна логика

111

001

010

000

FBA

000

110

101

111

FBA

highhighhigh

lowlowhigh

lowhighlow

lowlowlow

FBA

Нива напрежение Отрицателни лог ниваПоложителни лог нива

елемент

И

A

BF

AB

F = A B F = A + BAB

011

101

110

100

FBA

100

010

001

011

FBA

lowhighhigh

highlowhigh

highhighlow

highlowlow

FBA

Нива напрежение Отрицателни лог нива

елемент

НЕ-И

A

BF

AB

F = A B F = A + BAB

Положителни лог нива

Page 12: Lecture5 Log Osnovi Bool Algebra

Представяне на И/ИЛИ елементи чрез други

F = A + BAB

A

B

A + B

F = ABAB

A

BAB

Page 13: Lecture5 Log Osnovi Bool Algebra

Булеви изрази

0 и 1 теореми

идемпотентност

асоциативност

инволюция

Теорема на де Морган

Консенсус теорема

Теорема за абсорбцията

1 + A = 1

A + A = A

A + (B + C) = (A + B) + C

A + B = A B

(A + B)(A + C)(B + C) = (A + B)(A + C)

A + A B = A

0 A = 0

A A = A

A (B C) = (A B) C

A = A

A B = A + B

AB + AC + BC = AB + AC

A (A + B) = A

теореми

комутативност

дистрибутивност

идентичност

допълнение

A + B = B + A

A + B C = (A + B) (A + C)

0 + A = A

A + A = 1

A B = B А

A (B + C) = A B + A C

1 A = A

A A = 0

постулати

свойстваДвойственост/заменяемостОтношение

Page 14: Lecture5 Log Osnovi Bool Algebra

Сума на продукти: функция на мнозинството

• Сумата на продукти за функция на мнозинството (дали има повече 1-ци от нули) с 3 входа е:

• M = ABC + ABC + ABC + ABC = m3 + m5 + m6 + m7 = Σ (3, 5, 6, 7).

• всеки от 2n израза се нарича минтерм и е в диапазона от 0 до 2n – 1.

• Има връзка между номера на минтерма и булевата стойност.

0

0

0

1

0

1

1

1

0

1

0

1

0

1

0

1

0

0

1

1

0

0

1

1

0

0

0

0

1

1

1

1

0

1

2

3

4

5

6

7

FCBAминтерм

индекс

Page 15: Lecture5 Log Osnovi Bool Algebra

Представяне на мнозинство И-ИЛИ

A B C

A B C

A B C

A B C

F

CBA

Брой

елементи - 8, брой входове -19.

Page 16: Lecture5 Log Osnovi Bool Algebra

Представяне на мнозинство ИЛИ-И

A + B + C

A + B + C

A + B + C

A + B + C

F

CBA

Page 17: Lecture5 Log Osnovi Bool Algebra

Комбинативна логика• Прехвърля множество входове в множество изходи съгласно една или повече съответстващи функции

• Входовете и изходите на блок комбинативна логика имат 2 стойности – 0 и 1 (5 волта и 0 волта)

• Изходите на комбинативната логика стриктно следват функции на входовете, като тяхната стойност (на изх) се сменя веднага при смяна на стойностите на входовете – множество входове i0,i1,…ik се подава на КЛ, която дава стойности на изходите в съответствие с функциите f0, … fm

Комбинативна логика

ИзходиВходове

f0 (i0, i1)

fm(i1, iк)

i0

ik

… …i1

Page 18: Lecture5 Log Osnovi Bool Algebra

Mашина с краен брой състояния (FST)

• Комбинативните логически вериги нямат памет. Изходите им винаги следват функция, зададена на входа в съответното време

• Има нужда от вериги/логика с памет, която се държи по различен начин в зависимост от предишното състояние

• Като пример за това е машина за напитки/закуски, която трябва да помни колко и какви монети са пуснати в нея. Тя трябва да разпознава и запомни не само монетата, която се пуска в момента, но и трябва да помни какво е било пускано до сега

• Този вид машина се нарича “машина с краен брой състояния” (finite state machines), защото състоянията, в които могат да изпаднат са краен брой.

Page 19: Lecture5 Log Osnovi Bool Algebra

Последователна логика

• Последователна логика: верига, където състоянието се определя на базата на състоянието на входовете на веригата, както и на предишното състояние (историята) на входовете – т.е. на паметта

• Машина с краен брой състояния (Finite state machine): верига с вътрешно състояние, чиито изходи са функция както на състоянието на входните линии, така и на предишното/настоящето вътрешно състояние на самата машина.

Page 20: Lecture5 Log Osnovi Bool Algebra

Класически модел на машина с краен брой състояния

Една машина

FSM е съставена от комбинативна логика и елементи памет, които пазят информацията за състоянията.

Комбинативна логика

Q0 D0

s0

Qn Dn

sn

Елементи памет

Синхронизиращ сигнал

Битове на състоянието

ИзходиВходове

f0

fm

i0

ik

……

……

Page 21: Lecture5 Log Osnovi Bool Algebra

Префикси/съкращения

• За памет, 1K = 210 = 1024; 1М = 220 = 1 048 576; 1G = 230 = 1 073 741 824. За всичко друго, като например скорост на часовника/тактовата честота, 1K = 1000, и подобно 1M, 1G, т.н.

10-18aато

10-15fфемто

10-12pпико

10-9nнано

10-6µмикро

10-3mмили

мяркасъкращ.Префикс

1018Eекза

1015Pпета

1012Tтера

109Gгига

106Mмега

103Kкило

мяркасъкращ.Префикс

Page 22: Lecture5 Log Osnovi Bool Algebra

Производителност

• Време за реакция/време за изпълнение на задача/програма

• Измерва се в сек, мили сек, микро сек, нано сек, т.н.

• Основните единици при оценка на производителността са пропускна способност (throughput), честотна лента (bandwidth) и закъснение (latency)

Page 23: Lecture5 Log Osnovi Bool Algebra

• Пропускна способност или честотна лента?• Пропускна способност (throughput) – общото количество работа, свършено за определено време (единица време)

• Честотна лента (bandwidth) – количеството информация, което минава през мрежата/шината за определен период от време – скоростта на предаване на информация; максималнотоколичество информация (битове/сек), което може да се предаде по един канал

• Измерва се в MIPS (millions of instructions per second)за процесорите, в Mbit/sec за памети (RAM, твърди дискове) и за локални мрежи

Page 24: Lecture5 Log Osnovi Bool Algebra

• Както пропускната способност, така и честотната лента отразяват работата (или количеството байтове) свършена (или преминали) за единица време – в областта на компютърните архитектури двете понятия имат едно и също значение

• При комуникациите обаче, честотната лента е максималната скорост на предаване на данни, която може да се достигне, докато пропускната способност е това, което се получава в действителност

Page 25: Lecture5 Log Osnovi Bool Algebra

• Закъснение (време за реакция) latency (response time) се измерва в наносекунди за процесори и RAMпамети, микросекунди за ЛМ и милисекунди за достъп при твърд диск

• Капацитет е като цяло по-важна характеристика за памет и дискове. Там има най-голямо увеличение. За тези устройства увеличението на честотната лента е 120-140 пъти, закъснението се е подобрило 4-8 пъти

Page 26: Lecture5 Log Osnovi Bool Algebra

Пример за измерване на време

• При измерване на производителността, трябва да се взима предвид работата на системата

• Командата на UNIX time за дадена програма би дала:

• 90.7u 12.9s 2:39 65%• Времето на потребителя, през което използва ЦП е 90.7 сек, системното време на ЦП е 12.9 сек, цялото изтекло време е 2 мин и 39 сек – повече от 1/3 от времето на потребителя е за В/И или за други програми или за двете!

Page 27: Lecture5 Log Osnovi Bool Algebra

Защо измерваме производителността?

• За реални системи:• В рамките на пазара или при избор на система да изберем кое да купим

• За поддръжка на система или планиране – да предвидим и планираме кога ще е необходима подмяна/осъвременяване било то на част от системата или на цялата система

• За приложения – да може да открием критичното място/горещите точки на приложението и евентуално да вземем мерки за подобрение

Page 28: Lecture5 Log Osnovi Bool Algebra

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

• За работещи системи:• - време според часовник, време за реакция или

изтекло време• - функции на таймера на операционната система• - с помощта на вмъкнати броячи в компилатора

или в софтуера

• - външен хардуер (логически анализатори)• - интегриран хардуер за производителност

(брояч на събития)• - специализирани тестови програми (benchmarks)

Page 29: Lecture5 Log Osnovi Bool Algebra

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

• Теоретично (на хартия):• - с аналитични методи (теория на опашките, модели за производителност)

• - симулация на ръка (с молив и хартия)• - програмна симулация (прави се програма, която симулира работата на машината)

• - апаратна емулация (програма на FPGAимитира/симулира машината)

Page 30: Lecture5 Log Osnovi Bool Algebra

Развитие на мерките за производителност

• ЦП стават по-сложни – те вече разчитат на конвеирна обработка и йерархия на паметта

• Докато една машина с комплексен набор инструкции (CISC) изисква по-малко инструкции – т.е. имаща нисък рейтинг на MIPS (милион инструкции за сек), то е възможно тя да бъде равностойна на машина с редуциран набор инструкции (RISC), която има по-висок рейтинг

• Вече е трудно и неправилно да се разглежда време за изпълнение за инструкция, тъй като броят инструкции за секунда не може да се изчисли от множество инструкции (instruction mix)

• По този начин възникват програмите за производителност (benchmarking) – ползват се ядра на програми и специално създадени програми

Page 31: Lecture5 Log Osnovi Bool Algebra

• През 1976 се предлага програмата Whetstone –измерва научни програми написани на Алгол 60 и по-късно прехвърлени на Фортран

• По подобен начин е и програмата Livermore –от ядра на програми за Фортран – избрана е да мери производителността на суперкомпютри –ядрата се състоят от цикли от истински програми

• MIPS за машината M се дефинира на базата на друга референтна машина (с пр 1 MIPS) :

referencereference

MM MIPS

ePerformanc

ePerformancMIPS ∗=

Page 32: Lecture5 Log Osnovi Bool Algebra

• Развитието на суперкомпютърната индустрия през 70-те и 80 доведоха до по-широко използване на програми с плаваща запетая, което доведе до въвеждането на MFLOPS (millions of floating-point operations per second), с което започна употребата на този термин (особено за върхови стойности на MFLOPS)

Page 33: Lecture5 Log Osnovi Bool Algebra

• В края на 80-те се създава SPEC (Standard Performance Evaluation Corporation) – фирма с идеална цел (без печалба) за подобряване мерните единици при компютрите, за да има по-добра база за сравнение

• В началото се обръща внимание на работни станции и сървъри, базирани на UNIX

• Първите спецификации на SPEC мерките (benchmarks - SPEC89) – са значително подобрение в използването на реалистични мерки. За съвременните процесори, памет и компилатори и в момента доминиращи са SPEC2006

Page 34: Lecture5 Log Osnovi Bool Algebra

Мерки за производителност

• Освен споменатите мерки MIPS и MFLOPS се използват още:

• Брой транзакции за секунда - TPS (transactions per second) –мерки (TPS also means Transaction Processing System)

• Съществуват и други мерки (всичките са 1/време):• - за графика – милиони триъгълници за секунда• - невронни мрежи – милион връзки за секунда• Времето за изпълнение е основната мярка за производителност

• Съществуат и други – достъпност, капацитет на канала, разширяемост, производителност на ват (напоследък стойността на захранване става съизмерима, даже повече от тази на компютъра), степен на компресия!!!

Page 35: Lecture5 Log Osnovi Bool Algebra

Тестови програми/мерки• Най-добрият начин за измерване на производителност е с реални приложения (напр. компилатор)

• Ползване на програми, които са по-прости от реални приложения:

• ядра (kernels) – малки парчета от реални приложения – циклите на Livermore и Linpack(софтуерна библиотека за линейна алгебра – на Фортран), като последната ползва BLAS (Basic Linear Algebra Subprograms) библиотеките за векторни и матрични операции и изразява действия с плаваща запетая (MFLOPS).

• Българския суперкомпютър Blue Gene е с макс производителност по LINPACK - Rmax= 23.42 Tflops и теоретична върхова производителност - Rpeak= 27.85 Tflops

Page 36: Lecture5 Log Osnovi Bool Algebra

• Условия при които трябва да се изпълняват тестовите програми :– Да ползват един и същ компилатор с едни и същи флагове, като всички програми са написани на един и същ език

– Трябва да нямат модификация на кода• Множество оценъчни програми (benchmark

suites) – множество от приложения, с които се измерва производителността на процесорите

• Целта на оценъчните програми е да характеризират относителната производителност на два компютъра

Page 37: Lecture5 Log Osnovi Bool Algebra

• Тестови програми за настолни компютри – 2основни класа– За работа на процесора (processor-intensive benchmarks)– За графиката (graphics-intensive benchmarks)

• SPEC програмите – реални програми, модифициране за лесен пренос на различни компютри и минимизиране на ефекта на В/И върху производителността. Програмите с цели числа (12такива програми за SPEC2006) включват част от компилатор на С, програма за шах, симулация на квантов компютър, компресия на видео, търсене на геномна поредица и др.

Page 38: Lecture5 Log Osnovi Bool Algebra

• Тестовите програми за плаваща запетая (17 програми за SPEC2006) моделиране на крайни елементи, рамка за решаване на диференциални уравнения, разширяема молекулярна динамика (~NAMD),проследяване на лъч изписващ изображение, разпознаване на говор, изследване и прогнозиране на времето и др.

• Множеството SPEC CPU е полезно и се ползва не само за настолни компютри, но и за сървери с един процесор

Page 39: Lecture5 Log Osnovi Bool Algebra

• Тестови програми за сървери (Server Benchmarks)

• Ориентирани към пропускната им способност – производителността на мултипроцесор може да се измерва чрез работа на няколко копия = броя процесори за всяка тестова програма

• Повечето приложения на сървери имат значим В/И

• Съществуват тестови програми за файлови сървери (SPECSFS), бази данни, системи с транзакции, уеб сървери (SPECWeb)

Page 40: Lecture5 Log Osnovi Bool Algebra

Законът на Амдал

• Дава подобрението на производителността, което може да се получи при подобряване на част от компютъра – дефинира подобреното бързодействие

• Основния постулат в з-на на Амдал е, че подобрението на производителността при използване на по-бърз режим на изпълнение е ограничено от частта от времето, през което ще се използва по-бързия режим

Page 41: Lecture5 Log Osnovi Bool Algebra

tenhancemenguwithouttaskentireforePerformanc

possiblewhentenhancemengutaskentireforePerformancSpeedup

sin

sin=

( )

( )enhanced

enhancedenhanced

new

oldoverall

enhanced

enhancedenhancedoldnew

Speedup

FractionFractiontimeExecution

timeExecutionSpeedup

Speedup

FractionFractiontimeExecutiontimeExecution

+−==

+−∗=

1

1

1

Page 42: Lecture5 Log Osnovi Bool Algebra

• Въвеждаме 10 пъти по-бърз процесор за уеб операции

• Процесорът работи през 40% от времето и чака за В/И 60% от времето

• Колко е общото ускорение?

Page 43: Lecture5 Log Osnovi Bool Algebra

• Fractionenhanced = 0.4; Speedupenahnced = 10• Speedupoverall =1 / (0.6 + (0.4/10)) = 1/0.64

= 1.56