188483. lajstromszámú szabadalom • Áramköri elrendezés logaritmus függvény közelítő értékének gyors kiszámítására

1 188 483 2 A találmány tárgya áramköri elrendezés logaritmus függvény közelítő értékének gyors kiszámítására célfela­datokat ellátó bit-szelet mikroprocesszoros rendszerek­ben. Alkalmazása elsősorban sokcsatornás analizátorokban célszerű, ahol szükség van a spektrum display-en törté­nő, a szemmel való kiértékelés kis pontossági követelmé­nyének megfelelő felbontású logaritmikus megjelenítés­re. Az eddig ismert megoldások követik az univerzális számítógépek rendszerét, a logaritmus függvény értékei­nek kiszámításához a sorfejtés pontos, de időigényes módszerét alkalmazzák. Az ily módon felépített algorit­mus egy 20 bites bináris szám alatti logaritmus érték ki­számításához kb. 20 makroutasítás végrehajtását teszi szükségessé.Ez a szorzási és osztási műveletek nagy szá­ma miatt kb. 300 mikroutasítás végrehajtását igényli kb. 75 fis műveleti idő igénybevételével. Ez jelentős kijelzé­si holtidőt eredményezne, ami sokcsatornás analizáto­rokban megengedhetetlen. Ilyen célra szolgáló ismert megoldás található pl. John R. Mick és Jim Brick (Ad­vanced Mikro Devices, Inc.) „Mikropromming Hand­book” c. kiadványában, amelynek kiadási éve: 1976. Az ismert megoldás tömbvázlata az 1. ábrán látható, ahol: 1 SEOUENCER áramkör, amely a mikroutasítások sorrendjét határozza meg, 2 mikroprogramtár, 3 PIPE LINE regiszter, amely a végrehajtás alatt lévő mikroutasí­­tást tárolja, 4 címmeghatározó áramkör, amely a követ­kező mikroutasítás címét határozza meg, 5 feltétel mul­tiplexer, 6 kimeneti tároló regiszter, 7 aritmetikai-logiai egység, 8 adatbusz, 11 makroutasítás regiszter, 12 MAPPING PROM, amely a mikroprogramok kezdőcíme­it tárolja, 13 vezérlő áramkör, amely a következő makró­­utasítást határozza meg. Az 1. ábra szerinti áramköri elrendezés működése a következő: A logaritmus-számítási makroprogram elindí­tásáról, tehát ezen program első utasításának a 11 mak­routasítás regiszterbe való töltését a 8 adatbuszon ke­resztül a következő makroutasítást meghatározó 13 ve­zérlő áramkör végzi el. A 11 makroutasítás regiszter a 12 MAPPING PROM-on és az 1 SEOUENCER áramkörön keresztül kijelöli a 2 mikroprogram tárban az első mak­­routasításhoz tartozó mikroprogram kezdőcímét. Az ezen a címen levő mikroutasítást kiolvassuk a 3 PIPE LINE regiszterbe. Ez utóbbi utasítás b4 bitcsoport, első vezérlő b5 bitcsoport, második vezérlő b6 bitcsoport ne­gyedik, ötödik, hatodik 35, 36, 37 kimenetei vezérlik az adattal kapcsolatos aritmetikai és logikai műveletek vég­rehajtását a 7 aritmetikai-logikai egység segítségével. A 3 PIPE LINE regiszter ugráscímet-ciklusszámot beállító bl bitcsoport, következő címet kiválasztó b2 bitcsoport, feltételt kiválasztó b3 bitcsoport első, második, harma­dik 32, 33, 34 kimenetei az 1 SEOUENCER áramkörön, a 4 címmeghatározó áramkörön és az 5 feltétel multi­plexeren keresztül kijelölik a 2 mikroprogram tárban a következő mikroutasítás címét, amely címről kiolvasott mikroutasítás ismét a 3 PIPE LINE regiszterbe kerül. Ez a folyamat ismétlődik mindaddig, amíg el nem érke­zünk az első makroutasításhoz tartozó mikroprogram utolsó utasításához. Ez egy MAP típusú utasítás kódot juttat az 1 SEOUENCER áramkör 111 bemenetére, amelynek következtében a 112 bemeneten levő kód ha­tására a 12 MAPPING PROM által kijelölt makroutasítás­hoz tartozó mikroprogram kezdőcímét jelöli ki a 2 mik­roprogram tárban. Ezzel ismét megkezdődik egy mikro­program végrehajtása az előzőekben leírt módon. Az ismertetett áramköri elrendezés a következő algo­ritmus felhasználásával alkalmazható logaritmus értéké­nek számítására (Computational Matematics Worked Exemples and Problems with Elements of Theory N.V. Kopchenova and I.A. Maron MIR Moscow). Minden po­zitív szám (x) kifejezhető a következő formában: x = 2m . z, ahol m pozitív egész szám, z pedig megfelel a következő felté­telnek 1/2 z 1. Felvéve a , I -Z £ = változót, felírhatjuk: OO I lnx = m.ln2 + lnz = m.ln2 - 22 ■ - %2k'1 k = 1 4X-1 A keresett logaritmus érték lnx a következő rekurens ki­fejezéssel számítható ki: n lnx = m.ln2~2 2 Ur/+ R_, ahol k= 1 K n Uj = f; Rn a logaritmus számítás hibáját adó maradék. A fenti képlet alapján felépülő algoritmus 20 bites bi­náris szóból kiindulva és 4 bites mantisszát feltételezve 2 osztási, 6 szorzási, 30 körüli alapvető összeadási, kivo­nási, adatátírási, inkrementálási, dekrementálási és shifte­­lési utasítást tartalmaz. Ezek kb. 20 makroutasítás és 300 mikroutasítás végrehajtását jelentik, összesített mű­veleti idejük meghaladja a 75 /us-ot. Ez az áramköri elren­dezés logaritmus értékének számításán kívül — univerzá­lis jellege miatt — gyakorlatilag bármely algoritmus meg­valósítására alkalmas. Az ismert megoldások hátrányai a következők: — a logaritmus értékének kiszámításához tartozó prog­ram nagyon sok mikroutasítást tartalmaz, tehát idő­igényes, — a logaritmus értékének kiszámításához makro- és mik­­roszintű áramköri elrendezés (hardware) kiépítése szükséges, ami igen költséges. A találmány célul tűzte ki az ismert megoldás hátrá­nyainak megszüntetését és olyan áramköri elrendezés lét­rehozását, amely a logaritmus értékének számításához szükséges műveleti időt lecsökkenti, s így ezt a megol­dást alkalmazó pl. sokcsatornás analizátorokban a holt­időt csökkenti, valamint a megkívánt pontosságnak meg­felelő egyszerű, nem költséges áramköri megoldás alkal­mazását lehetővé teszi. A találmány szerinti megoldás azon a felismerésen ala­pul, hogy ha az eddigi megoldásokban használt makro­utasítás regisztert, MAPPING PROM-ot és a vezérlő áramkört elhagyjuk és egyszerű felépítésű vezérelhető összeadót, adatkiválasztó multiplexert alkalmazunk, to­vábbá biztosítjuk, hogy a vezérelhető összeadó és adatki­választó multiplexer vezérelhető bemenetei a PIPE LINE regiszter logaritmus vezérlő bitjétől kapják a vezérlést, s az aritmetikai-logikai egység kimenete és a SEOUENCER áramkör bemenete között kapcsolat jöjjön létre, módo­sítva ezáltal a PIPE LINE regiszter ugráscímet-ciklusszá­mot beállító bitcsoport kimenete által meghatározott ug­ráscímet, valamint az adat módosítása céljából a PIPE LINE regisztert kiválasztó második vezérlő bitcsoport 5 13 15 20 25 30 35 40 45 50 55 60 65 2

Next

/
Oldalképek
Tartalom