Pufferes adatfolyamok - mi ez

Term: pufferelés adatfolyamok

Ha a programozás működő adatfolyamot az ADC és DAC, a probléma merül fel, hogy elegendő adatfeldolgozási sebességet.







Az adatforgalom sebessége határozza meg a mintavételi frekvencia és nem szabályozza a program: a fizikai folyamat nem várhat. Ha veszít számít, a jel lesz kényeztetve.

Ebben az esetben a számítógép végrehajtja a programot általában nem működik a valós időben, azaz a ha a program egy lépésben kell „azonnal” a másik után, hogy „azonnal” kell érteni, mint a műveletek sorrendjét, nem pedig a valós időben. Egyes műveletek (például írás a lemezre) végezhető viszonylag hosszú. Szintén egy többfeladatos operációs rendszer számos olyan folyamat, félbeszakítva egymást, úgy, hogy a program „eltömítik” véletlenszerűen neki időpillanataihoz (néha elég hosszú idő - a több tucat, akár több száz milliszekundum).

Ezen kívül, ha a programozás szükséges adatok feldolgozására a blokkok (részek), ahelyett, hogy egy minta, vagy írásvetítő megkérdőjelezné a sebesség még a modern számítógépes.

Hogy oldja meg ezt a problémát, használja pufferelés.

Buffer - egy tömböt a memóriában gyors hozzáférés, amely felhalmozódik fogadott adatok (ha ez a bemeneti folyam ADC), vagy ahonnan küldik előre meghatározott sebességgel (ha a kimeneti áram DAC).

Amikor adatbeviteli folyamat azzal kezdődik, egy üres puffer. Származtatására a puffer kell előre töltött, vagy elején a puffer végbemehet azonnal kiürítése.

Teljesítmény adatfeldolgozó számítógép nagyobbnak kell lennie, mint az áramlási sebesség (a margin), de a pillanatnyi sebesség csökkenhet csak a bemeneti puffert nem túlcsordult és kimeneti puffer nem üres. Letéti arány szükséges elemezni a felhalmozódott adatok a puffer miatt a szünet (és a származtatás -, hogy töltse ki a puffer ismét).







Képletesen lehet képzelni, milyen bemeneti puffer tartály, amelyben a cső állandó sebességgel víz folyik. Mi összelapátol a víz vödröt, és utalja vissza a fogyasztónak; minél nagyobb a tartály, annál több időnk van a váratlan késedelmet az úton. Ideális esetben a tartály nem lehet több, mint egy vödör vízzel, majd hagyja, hagyjuk üresen, és a maximális mozgástér. Ha késve, és a felhalmozott egy csomó vizet, kezdjük, hogy az idő, hogy gyorsan lapát.

A pufferelt kimenet minden ugyanaz, csak a vizet kell elvezetni a tartály állandó sebességgel (és nem tudja megszakítani az áramlás a baleset), és ráöntjük kanalak. Ennek megfelelően a maximális védelmet nyújt a késés egy teljes tank, és ha esett - meg kell gyorsan megtelt.

A gyakorlatban az ilyen áramkört is végre lehet hajtani, mint egy kör alakú puffer lista, vagy a kisebb egységek ( „vödör”) sorban állnak. Ha készen áll, azok feldolgozása, megszabadítjuk vödrök-blokkok kerülnek a sorban.

A legegyszerűbb lehetőség - ez a modell két pufferek (két fél egy nagy puffer): amikor az egyik fele kész, azt feldolgozzák, az idő adatokat gyűjtünk a második félévben, és az idő a teljesítéshez kell fejezni az elsődleges feldolgozás, majd a fele a „változás szerepük.” Ha továbbra is az analógia vödrök, nincs tartály, de van két vödör: egyre tele vödör, csak helyettesíteni az üres és tele lásd a virágágyás. Ez egy nagyon egyszerű és hatékony rendszer, de mérete adatrészei (és a kapcsolódó késleltetés) kapcsolódik a méret a puffer, ami néha kényelmetlen.

A használt puffer és hasonló háztartási vödör, hogy a fontos fenntartással, hogy alatt pufferrel (egy adatgyűjtő és vezérlő) azt jelenti, a szekvenciális szerkezet, amelyben az adatok nem vesznek (nem lyukas vödör), és az adatok sorrendje nem változik. Más szóval, elkapta a puffer kiolvasott adatok nem előzni előző jön állása.

Szintén fontos megjegyezni, hogy a végrehajtás a puffer lehet nem csak szoftvereket, hanem a hardver, mint például FPGA. típus lineáris sorban meghatározott maximális mérete "első jött - first out" (FIFO - First In, First Out).

Ha a „pufferek” átfogóan, puffer lehet mentése nélkül természetes rendje az adatok sorrendje, például a LIFO „utoljára beírt - elsőként kiadva” (LIFO - Last In First Out). Más néven LIFO puffer - egy köteg (Stack), amely széles körben használt a programozás.

Ezzel a témával kapcsolatos, a következő: