Násobení. INP 2008 FIT VUT v Brně



Podobné dokumenty
Aritmetické operace a obvody pro jejich realizaci

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

ZÁKLADY AUTOMATICKÉHO ŘÍZENÍ

Dělení. INP 2008 FIT VUT v Brně

Automatizační technika. Obsah. Algebra blokových schémat Vývojové diagramy. Algebra blokových schémat

Násobení. MI-AAK(Aritmetika a kódy)

Operace ALU. INP 2008 FIT VUT v Brně

Struktura a architektura počítačů (BI-SAP) 5

teorie elektronických obvodů Jiří Petržela syntéza elektronických obvodů

B. Sčítání,odčítání adoplňkovýkód

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Rovnice rovnoměrně zrychleného pohybu

Způsoby realizace této funkce:

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Rovnice rovnoměrně zrychleného pohybu

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

Vysokofrekvenční obvody s aktivními prvky

Převod Bin do BCD pomocí Hornerova schématu

KOMBINAČNÍ LOGICKÉ OBVODY

Příklady k přednášce 19 - Polynomiální metody

E. Pohyblivářádováčárka

Struktura a architektura počítačů (BI-SAP) 6

s požadovaným výstupem w(t), a podle této informace generuje akční zásah u(t) do

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Násobičky, Boothovo překódování. Demonstrační cvičení 7

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Příklady k přednášce 6 - Spojování a struktury

1.2.4 Racionální čísla II

( LEVEL 3 Laplaceova transformace jako nástroj řešení lineárních diferenciálních rovnic. )

ZÁKLADY AUTOMATICKÉHO ŘÍZENÍ

Teorie elektronických obvodů (MTEO)

Architektura počítačů Logické obvody

Logické funkce a obvody, zobrazení výstupů

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

Y36SAP 2007 Y36SAP-4. Logické obvody kombinační a sekvenční používané v číslicovém počítači Sčítačka, půlsčítačka, registr, čítač

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

1.1.7 Rovnoměrný pohyb II

Mikroprocesorová technika (BMPT)

ANALÝZA PRŮCHODU PAPRSKOVÝCH SVAZKŮ KOUTOVÝM ODRAŽEČEM

Architektura počítačů Logické obvody

1 z :27

Dělení. Demonstrační cvičení 8 INP

Struktura a architektura počítačů (BI-SAP) 4

3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

Návrh synchronního čítače

4. Elektronické logické členy. Elektronické obvody pro logické členy

Posouzení stability svahu

Příklady k přednášce 19 - Polynomiální metody

4. TROJFÁZOVÉ OBVODY

Registry a čítače část 2

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Příklady k přednášce 16 - Pozorovatel a výstupní ZV

Vzorový test k přijímacím zkouškám do navazujícího magisterského studijního oboru Automatické řízení a informatika (2012)

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE

Vzorový protokol pro předmět Zpracování experimentu. Tento protokol by měl sloužit jako vzor pro tvorbu vašich vlastních protokolů.

4. Práce, výkon, energie

Pohled do nitra mikroprocesoru Josef Horálek

Výfučtení: Triky v řešení fyzikálních úkolů

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

IDENTIFIKACE REGULOVANÉ SOUSTAVY APLIKACE PRO PARNÍ KOTEL

PSK3-4. Přístupová práva. setfacl z balíčku acl.)

Kódováni dat. Kódy používané pro strojové operace

Frekvenční metody syntézy

Struktura a architektura počítačů (BI-SAP) 3

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

Základní vlastnosti funkcí

Architektury počítačů

Kódy pro detekci a opravu chyb. INP 2008 FIT VUT v Brně

Teorie systémů a řízení

v aritmetické jednotce počíta

5. cvičení z Matematické analýzy 2

17. EXPONENCIÁLNÍ ROVNICE

Systém vztahů obecné pružnosti Zobecněný Hookeův zákon

5. Paralelní sčítání, bitonické třídění(zapsal: Petr Jankovský)

4. cvičení z Matematické analýzy 2

6 Algebra blokových schémat

Výpočet zobrazovacích soustav

( s) ( ) ( ) ( ) Stabilizace systému pomocí PID regulátoru. Řešený příklad: Zadání: Uvažujme řízený systém daný přenosovou funkcí

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Aritmetika s velkými čísly na čipové kartě

Sekvenční logické obvody

2. Matice, soustavy lineárních rovnic

SOUČIN MATIC A m n B n p = C m p, přičemž: a i1 b 1j +a i2 b 2j + +a in b nj = c ij, i=1 m, j=1 p. Např: (-2) = -3

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

21 Diskrétní modely spojitých systémů

Principy počítačů. Prof. RNDr. Peter Mikulecký, PhD.

Chem. patrona R / kotva s vnitřním záv. RG MI Beznapěťové upevnění v tlačené zóně betonu.

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

Rozšiřování = vynásobení čitatele i jmenovatele stejným číslem různým od nuly

Čísla, reprezentace, zjednodušené výpočty

Čísla a číselné soustavy.

Dělení. MI-AAK(Aritmetika a kódy)

Determinant matice řádu 5 budeme počítat opakovaným použitím rozvoje determinantu podle vybraného řádku nebo sloupce. Aby byl náš výpočet

ÚSTŘEDNÍ KOMISE FYZIKÁLNÍ OLYMPIÁDY ČESKÉ REPUBLIKY

2.7 Binární sčítačka Úkol měření:

3. Sekvenční logické obvody

Řešení úloh 1. kola 51. ročníku fyzikální olympiády. Kategorie D = s v 2

4 HMM a jejich trénov

Transkript:

Náobení INP 2008 FIT VUT v Brně

Náobení a náobičky Při náobení číel v dvojkové outavě můžeme náobit abolutní hodnoty číel a pak doplnit do výledku znaménko, anebo raději náobit přímo číla e znaménkem. Vlatní náobení může být prováděno ekvenčně (potupně), anebo kombinačně (v jednom kroku). Rozlišujeme proto ekvenční náobičky kombinační náobičky Podle typu operandu rozlišujeme náobičky praujíí v pevné řádové čáre a plovouí řádové čáre Cílem implementae je zíkat oučin o nejryhleji za o nejnižší enu (počet hradel, ploha čipu). Pro pevnou řádovou čárku i ukážeme: Prinip náobení Sekvenční náobičky Kombinační náobičky Prinip uryhlení Boothovo překódování, Wallaeův trom 2

Prinip náobení (bez znaménka) Mějme dvě číla: N-bitový náobitel x N- x N-2... x 0 a M-bitový náobene y M- y M-2... y 0. Součin P potom bude: Náobene (multipliand) Náobitel (multiplier) čátečné oučiny (partial produt) Součin (produt) Výledek je na 2 biteh, obeně na M+N biteh. 3

Sekvenční náobička Př. n=4, x 0 = 0000 (=> označuje poun vpravo) Iniializae: A: PB: 00000 0 Krok : PB: 00000 0 + PB: 0 0 => 00 0 Krok 2: PB: 00 0 + PB: 00 0 => 00 00 Krok 3: PB: 00 00 +0000 PB: 00 00 => 000 0 Krok 4: PB: 000 0 + PB: 000 0 => 000 00 U ekvenčního náobení číel A x B e do dolní poloviny pojenýh regitrů PB připraví náobitel B, do horní poloviny nuly, náobene do regitru A. Potup náobení je náledujíí: () Nejnižším bitem regitru PB e vynáobí náobene A a přičte e k horní čáti regitru PB, kde e udržuje průběžný oučet dílčíh oučinů. (2) Obah regitrů PB e poune o jeden bit vpravo. Kroky, 2 provedeme elkem n-krát. Výhoda: nízký počet hradel, Nevýhoda: nízká ryhlot, n taktů pro náobení 4

Obvodová realizae náobení je založena na čítačkáh Poloviční čítačka: Zpoždění: logiký člen Úplná čítačka: Zpoždění: 2 logiké členy 5

Kombinační náobička (v jednom kroku) a a 3 2 a a 3 2 a a 0 a a 0 b 0 b a a 3 2 a a 0 b 2 a a 3 2 a a 0 b 3 p p p p p p p p 7 6 5 4 3 2 0 6

Kombinační náobička odvození zpoždění Čílo udává zpoždění na vodiči (počet hradel). Poloviční čítačky jou znázorněny a a 3 2 a a 3 2 a a 0 a a 0 tučně. 0 8 5 6 a a 3 2 2 7 2 4 2 a a 3 2 7 a 6 a 0 a a 0 6 4 6 0 9 2 p p p p p p p p 7 6 5 4 3 2 0 4 8 9 2 4 5 2 b 0 b b 2 b 3 Zpoždění: 6x zpoždění logikého členu. 7

Popi ke kombinační náobiče Jednotlivé dílčí oučiny, tedy - a 0-náobky náobene e tvořířadou hradel a čítají e na čtyřbitovýh čítačkáh potupným přenoem. Celkový počet hradel pro náobičku nxn bitů je 0(n 2 ), elkový počet jednobitovýh čítaček je (n-)x n. Zpoždění čítačky určíme nalezením nejdelší ety v kombinační íti. Je-li přenoové zpoždění hradla T a čítačky 2T, má nejdelší eta přenoové zpoždění 6T (nebo 8, = 2T). Toto zpoždění e rotouí délkou operandů dále zvětšuje. Je proto naha nalézt upořádání náobičky ryhlejší funkí. Nejdříve e však zaměřme na náobení číel e znaménkem. 8

9 Náobení číel e znaménkem v doplňkovém kódu = = + + = 2 0 2 0 ) 2 2 ).( 2 2 ( N i i i N N M j j j M M x x y y P P = + + + Příklad pro M=N=6 Výledek je na 2 biteh, obeně na M+N biteh. Záporný člen: negae, přičtení

Př. Náobení číel e znaménkem - praktiky (-4) x (-4) na 5 biteh v doplňkovém kódu. Protože je výledek na 0 biteh, muíme důledně rozšiřovat znaménko na 0 bitů týká e zápornýh číel. S S 00 x 000 ----------------------------------------------------- 00000 00 00000 00000 00 ------------------------------------------------------ 00 00 00 00 00 ------------------------------------------------------ 0000000 S 0

Náobení číel e znaménkem - praxe Co tím? Důledná práe e znaménkem: Výledek náobení dvou číel na n biteh bude na 2n biteh Tedy i vtupní operandy muí být právně zakódovány na 2n biteh Prinip šíření hodnoty znaménkového bitu doleva - z toho vyplývají dva problémy: U dílčíh oučinů e objeví levotranné jedničky Objeví e další dílčí oučiny Počet čátečnýh oučinů a šíření znaménkového bitu () lze redukovat pomoí Boothova algoritmu. Počet úrovní nutnýh pro ečteníčátečnýh oučinů lze redukovat pomoí Wallaeho tromu.

Prinip Boothova překódování Překódováním náobitele poteniálně velmi unadníme náobení, protože zredukujeme počet čátečnýh oučinů a zbavíme e levotrannýh jedniček. A*3 A = A*32-A A náobene 000- náobitel A -A A A A A A 4 oučty oučet Konvenční přítup Boothova metoda 2

Boothovo překódování radixem 2 Základem Boothova algoritmu je překódování náobitele do outavy relativníh číli. Máme-li náobit čílem 3, tedy 000, dotaneme tejný výledek, vynáobíme-li čílem (32 - ), ož zapíšeme v outavě relativníh číli, která používá čílie 0, +, - 0 0 0 0 0 0 0 0 0- Tento prinip aplikujeme na dvojkové čílo opakovaně pro všehny kupiny jedniček, přičemž za kupinu jedniček považujeme i jedinou jedničku. Příklad: 0 0 0 0 0 0 0 0-0 0-0- 0 0 0-0 0 0- Odtud můžeme etavit překódovai tabulku. Kromě překódovaného bitu e řídíme ještě hodnotou ouedního bitu vpravo. Dotáváme tak základní Boothovo překódování, zvané též překódování radixem 2. 3

Boothovo překódování radixem 2 Překódovaná čílie 0 0 Souední bit vpravo 0 0 Boothův kód 0-0 Všimneme i překódování záporného náobitele, např. -6 na 5 biteh včetně znaménka. Toto čílo 00 e překóduje na 0--0. Rozšíříme-li zobrazení číla -6 na 0 bitů, tedy na 00, pak v Boothově překódování e to projeví přidáním pěti levotrannýh nul, tedy dotaneme 000000--0. Potom vznikají nulové čátečné oučiny, které unadňují výledný oučet. 4

Příklad 3 x (-6) na 5 biteh vč. znaménka. Překódování náobitele poneháme pouze na 5 biteh, protože levotranné nuly vyvolají vznik nulovýh a tedy bezvýznamnýh dílčíh oučinů. 3: 00 6: 0 0 0-3: 00-6: 0 0 Překódování náobitele 0- - 0 0 x 3 0000000000 - x 3 00 x 3 00000 - x 3 00 0 x 3 000000 ------------------------------------ 0000 S -000000 tj. -78 5

Boothovo překódování radixem 4 Je tedy odtraněn nepříznivý efekt záporného náobitele, zůtává však nutnot šíření znaménka u zápornýh dílčíh oučinů. Dalším požadavkem pro uryhlení náobení je nížení počtu dílčíh oučinů. Oba tyto požadavky e řeší dalšími modifikaemi Boothova náobení. Z jednoduhého Boothova překódování je odvozeno překódování "2 bity najednou", neboli Boothovo překódování radixem 4. 0 0 0 0 původníčílo rozdělené do dvoji 2 2 2 2 2 váhy 0- - 0-0 - Boothovo překódování po jednom bitu - 2-2 překódování "2 bity najednou" 6

Boothovo překódování obený počet bitů Boothovo překódování lze definovat pro kupiny bitů libovolné velikoti. Obený potup je takový: V každé kupině zopakujeme nejvyšší bit, a přičteme k nejnižšímu bitu nejvyšší bit ze kupiny vpravo. Výledné čílo pak považujeme za relativní čílii v doplňkovém kódu. Příklad pro radix 4 (tj. 2 bity najednou): 00 00 0 0 0 00 0 0 původní čílo 000 000 00 0 00 000 0 0 rozšíření znam. bitu 0 0 0 0 0 přičtení bitu zprava -------------------------------------------------------------------------- 000 00 00 000 0 00 00 0 doplňkový. kód rel. čílie 0 + - 2 0-2 + - -2 překódování radixem 4 Z tohoto příkladu můžeme odvodit tabulku pro Boothovo překódování radixem 4. 7

Boothovo překódování radixem 4 Překódovaná kupina 00 00 0 0 0 0 Bit vpravo 0 0 0 0 Relativní čílie 0 + + +2-2 - - 0 8

Příklad Boothovo překódování radixem 4 3 x (-6): 3 00 6: 000-3 00-6: 00 potřebujeme udý počet bitů, rozšíříme znaménko na 00 Boothovo překódování 0--0 po jednom bitu 0- -2 po dvou biteh -------------------- S -2x3 000 tj. -3 pounutá vlevo o bit -x3 00 krokem 2 bity 0x3 000000 -------------------- 0000-78 S 9

Komentář k příkladu 3 x (-6) V prvním dílčím oučinu e nám pounulo znaménko o jeden bit doleva. Tomu muíme přizpůobit všehny otatní dílčí oučiny, tedy zapiovat je na 6 biteh. Znaménko výledku očekáváme ovšem v 0. bitu. Šíření znaménka vlevo odtraňuje metoda vroubení. Míto šíření znaménka e ke každému dílčímu oučinu připíše zleva negae znaménkového bitu a jednička, a nad znaménkový bit prvního dílčího oučinu e napíše též jednička. Pozor, tento potup funguje pouze pro metodu 2 bity najednou! g g Dílčí oučin g g Dílčí oučin 2 g g Dílčí oučin 3... 20

Př. 3 x (-6) vroubením znaménka, 2 bity najednou 000 0 - -2 ---------------------- 0000 000 000000 ----------------------- 0000 S Obvodová realizae vroubení znaménka: gi gi 2

Boothovo překódování radixem 8 (po 3 biteh) Tabulka odvozena tejným způobem jako pro radix 4. Používá 9 relativníh číli. 0 22

Jak uryhlit kombinační náobičku? Uryhlit ečtení čátečnýh oučinů zavedením uhování přenoů Příklad: Sečtěte 6 + 7 + 2 + 8 0 (6) (7) 0 (3) + 00 (2) 00 (25) + 0000 (8) 0000 (33) Konvenční čítání: Sečtou e první dva operandy, potom e k průběžnému výledku přičítají další operandy. V rámi čítání dvou operandů e použije čítačka potupným přenoem ložená z úplnýh čítaček. 0 (6) (7) 00 oučet bez přenoů (S) 0 uhování přenou (C) + 00 (2) 000 S+C+2 bez přenoů (S2) 00 uhování přenou (C2) + 0000 (8) 0000 oučet S2+C2+8 přenoem Sčítání uhováním přenou: Sčítá e bez uvážení přenoů (tj. ryhle). Avšak přenoy e uhovávají v regitru a přičítají (pomoí úplnýh čítaček) k průběžnému oučtu a dalšímu operandu v náledujíím kroku (opět bez přenou). Přičtení poledního operandu e provede pomoí čítačky potupným přenoem. 23

4b kombinační náobička uhováním přenou 3x čítačka uhováním přenou (SUP) 6 a 3 b 3 0 0 a 3 b 2 a 2 b 3 5 a 3 b 0 0 a 2 b a 3 b 0 0 a b a 2 b 0 0 a 0 b a b 0 0 a 2 b 2 a b 3 4 a b 2 a 0 b 3 3 P3 a 0 b 2 2 P2 P a 0 b 0 P0 ab 0 + ab +ab 2 +ab 3 x čítačka potupným přenoem (SPP) P7 P6 P5 P4 24

Optimalizovaná 4b kombinační náobička uhováním přenou a 2 b a 3 b 0 a b a 2 b 0 a 0 b a b 0 a 0 b 0 a 3 b a 2 b 2 a b 2 a 0 b 2 P0 ab 0 + ab a 3 b 2 a 2 b 3 a b 3 a 0 b 3 2 P +ab 2 6 a 3 b 3 5 4 3 P3 P2 +ab 3 P7 P6 P5 P4 25

Komentář k náobiče uhováním přenoů Ze tří řad čítaího tromu jme odtranili čítačky potupným přenoem. Sčítačky v jednéřadě e označují jako čítačka uhováním přenou (SUP, angl. CSA - Carry-Save Adder). V každém tupni e čítačka v nejvyšším řádu redukovala na hradlo. Mueli jme však nakone jednu řadu čítaček potupným přenoem (SPP) přidat. Niméně toto upořádání činnot náobičky obeně zryhluje. Základem n-bitové náobičky uhováním přenou je n-bitová SUP: X Y Z n n n......... = n-bit SUP n n C S n -krát 26

Zobeněné využití čítačky Sčítačka uhováním přenou dovoluje hápat čítání poněkud odlišným způobem. Víme, že jednobitová čítačka má tři vtupy a dva výtupy. Vzhledem k tomu, že vtupy pro přeno všeh jednobitovýh čítaček v prvním tupni jou nevyužité, může e na ně přivét třetí dílčí oučin. Na vtupeh má tedy čítačka tři binární vektory délky n, ovšem vzájemně pounuté do právné polohy. To e projeví tak, že v každém tupni je plný počet čítaček (n). Součet tří dílčíh oučinů je dán výtupním vektorem oučtu a výtupním vektorem přenoů. Poloha vektoru oučtu je vzhledem ke konečnému výledku právná, vektor přenoů e poouvá o jeden bit do vyššího řádu. Takováto zobeněná optimalizovaná čítačka je známá též pod označením peudočítačka, protože nedává ještě definitivní oučet vtupníh vektorů. 27

Blokové héma náobičky uhováním přenou 6x6 bitů Ab 2 Ab Ab 0 a 0 b 0 A = a 5 a 4 a 3 a 2 a a 0 Ab 3 SUP 6b B = b 5 b 4 b 3 b 2 b b 0 Ab 4 SUP 6b P P 0 Ab 5 SUP 6b P 2 SUP 6b P 3 SUP 6b P 4 SPP 6b P 5 P P 6 5 28

Blokové héma náobičky uhováním přenou 8x8 bitů Ab 3 Ab 2 Ab Ab 0 SUP 8b a 0 b 0 A = a 7 a 6 a 5 a 4 a 3 a 2 a a 0 Ab 4 SUP 8b P P 0 B = b 7 b 6 b 5 b 4 b 3 b 2 b b 0 Ab 5 SUP 8b P 2 Ab 6 SUP 8b P 3 Nebylo by možné zredukovat počet čítání a tím i zpoždění? Ab 7 SUP 8b SUP 8b SUP 8b P 6 P 5 P 4 7 SPP 8b P 7 P 5 P 8 29

Zryhlené čítání čátečnýh oučinů (A, B, C, D, E, F) při náobení uhováním přenou M x Q (6b x 6b) Nejdříve jou ečteny čátečné oučiny A, B a C, výledek je v S a C. Potom jou ečteny čátečné oučiny D, E a F, výledek je v S2 a C2. Náleduje oučet S, C a S2, výledek je v S3 a C3. Nakone jou ečteny S3, C3 a C2, výledek je v S4 a C4. Sčítačkou potupným přenoem jou nakone ečteny S4 a C4. Kromě poledního čítaní jou všehna otatní čítání uhováním přenou. 0 0 M x Q 0 0 A 0 0 B 0 0 C 0 0 0 0 S 0 0 0 0 C 0 0 D 0 0 E 0 0 F 0 0 0 0 S2 0 0 0 0 C2 0 0 0 0 S 0 0 0 0 C 0 0 0 0 S2 0 0 0 0 0 S3 0 0 0 0 0 0 0 0 C3 0 0 0 0 C2 0 0 0 0 0 S4 +0 0 0 0 0 0 0 0 C4 0 0 0 0 0 0 Součin 30

Zryhlené čítání čátečnýh oučinů při náobení uhováním přenou 6x6 bitů Wallaeův trom F E D C B A SUP SUP C2 S2 C S C3 SUP S3 3 (bez optimalizae je zpoždění 5 ) C4 SUP SPP S4 3

Wallaeův trom pro náobičku 8x8 bitů b 7 A b 6 A b 5 A b 4 A b 3 A b 2 A b A b 0 A V každém tupni (SUP) je redukován počet operandů na 2/3: 8 SUP8 SUP8 6 SUP8 SUP8 2 4 SUP8 4 SUP8 3 4 (bez optimalizae je zpoždění 7 ) 2 3 SPP8 5 +(n-) 2 32

Shrnutí: Kombinační náobička číel e znaménkem Náobene Tvorba náobků náobene e Ošetře ní mén ka Wallaeův trom Překódování náobitele (Boothovo, 2 bity, 3 bity, 4 bity najednou atd.) Náobitel Součin 33

Použitá literatura Drábek, V. Výtavba počítačů. Skriptum VUT, 995 Wete, N. H. E., Harri, D.: CMOS VLSI Deign, 3. vydání, Addion Weley, 2005 Hamaher, C., Vranei, Z., Zaky, S.: Computer Organization. MGraw-Hill, 200 34