Tankintuvas

**Tankintuvas** ( arba *mux*), taip pat žinomas kaip **duomenų atrinkėjas** – elektronikoje vadinamas prietaisas, kuris pasirenka kelis analoginius arba skaitmeninius įvesties signalus iš daugelio ir persiunčia pasirinktus signalus į vieną išvesties liniją. Pasirinkimas yra atliekamas naudojant atskirą skaitmeninių įvesčių rinkinį, vadinamą pasirinkimo linijomis. Dviejų 2 įvesčių tankintuvas 2^n turi n pasirinkimo linijas, kurios yra naudojamos pasirenkant, kurią įvesties liniją siųsti į išvestį.

Tankintuvas suteikia galimybę keliems įvesties signalams dalytis vienu prietaisu arba viena terpe, pavyzdžiui, vienu analoginiu-skaitmeniniu keitikliu arba viena ryšio perdavimo terpe, o ne turėti atskirus prietaisus kiekveinam įvesties signalui. Tankintuvai taip pat gali būti naudojami kelių kintamųjų Būlio funkcijoms įgyvendinti.

Atvirkščiai, retintuvas ( arba *demux*) yra prietaisas, priimantis vieną įvesties signalą ir pasirenkantis keletą išvesties signalų, suderintų su tankintuvu, prijungtu prie vieno įvesties signalo, ir turinčio bendrą pasirinkimo liniją. Tankintuvas dažnai yra naudojamas su papildomu retintuvu signalo priėmimo gale.

Elektroninį tankintuvas dažniausiai veikia kaip daugelio įvesties signalų ir vieno išvesties signalo jungiklis, o retintuvas – kaip vieno įvesties signalo ir daugelio išvesties signalų jungiklis. Schemose tankintuvas žymimas kaip lygiašonė trapecija, kurios ilgesnėje lygiagrečioje pusėje yra įvesties signalai, o trumpoje lygiagrečioje pusėje yra išvesties signalai. Dešinėje esančioje schemoje, kairėje pusėje yra pavaizduotas 2-1 tankintuvas, o dešinėje pusėje– atitinkamas jungiklis.

## Pritaikymas
Tankintuvai yra kompiuterinių sistemų dalis, skirta atrinkti duomenis iš konkretaus šaltinio, nesvarbu, ar tai būtų atminties lustas, ar techinė įranga. Kompiuteris naudoja tankintuvus, kad valdytų duomenų ir adresų magistrales, todėl procesorius gali pasirinkti duomenis iš kelių duomenų šaltinių.

Skaitmeninio ryšio metu tankintuvai leidžia sujungti keletą jungčių į vieną kanalą, jungiant vieną tankintuvo išvestį prie vienos retintuvo įvesties. Taip veikia tankintuvo padalinimas laike. Paveikslėlis dešinėje parodo, kaip tai veikia. Šiuo atveju atskirų kanalų diegimo kiekvienam duomenų šaltiniui kaina būtų didesnė už tankinimo/retinimo funkcijų teikimo išlaidas.

Duomenų jungties priėmimo gale paprastai reikalingas papildomas retintuvas, kuris suskaidytų vieną duomenų srautą atgal į pradinius srautus. Kai kuriais atvejais galinė sistema gali turėti daugiau funkcijų nei paprastas retintuvas; ir nors signalų atskyrimas vis dar vyksta techniškai, jis niekada negali būti įgyvendintas diskretiškai. Taip būtų, kai, pavyzdžiui, tankintuvas aptarnauja kelis IP tinklo vartotojus; ir tada signalas yra tiekiamas tiesiai į maršrutizatorių, kuris iš karto nuskaito viso ryšio turinį į maršrutizatoriaus parinkimo procesorių; ir tada atlieka siganlų atskyrimą atmintyje, iš kurios ji bus tiesiogiai konvertuojama į IP dalis.

Dažnai tankintuvas ir retintuvas yra sujungiami į vieną įrangą, kuri paprastai yra vadinama tankintuvu. Abu grandinės elementai yra reikalingi abiejuose perdavimo linijos galuose, nes dauguma ryšių sistemų perduoda abiem kryptimis.

Analoginės grandinės konstrukcijoje tankintuvas yra specialus analoginio jungiklio tipas, jungiantis iš kelių įvesties signalų pasirinktą vieną įvesties signalą su vienu išvesties signalu.

## Skaitmeniniai tankintuvai
Skaitmeninėje grandinėje laidai atitinka skaitmenines vertes. 2-1 tankintuvo atveju, loginė 0 reikšmė prijungtų  I_1 į išvestį.
Dideliuose tankintuvuose, pasirinkimo prijungimų skaičius yra lygus  \left \lceil \log_2(n) \right \rceil kur  n yra įvesties skaičius.

Pavyzdžiui, 9–16 įvesties signalų reikės ne mažiau kaip 4 pasirinkimo prijungimų, o 17–32 įvesties signalams – ne mažiau kaip 5 pasirinkimo prijungimų. Dvejetainė reikšmė, išreikšta šiuose pasirinkimo prijungimuose, nustato pasirinktą įvesties prijungimą.

2-1 tankintuvas veikia pagal Būlio algebra kur  A ir  B yra du įvesties signalai,  S_0 yra prijungimo signalas, o  Z yra išvesties signalas:
: Z = ( A \wedge \neg S_0) \vee (B \wedge S_0) or
: Z = ( A . \overline{S_0}) + (B . S_0)

kuris gali būti išreikštas kaip tiesos lentelė:

Arba, užrašant paprasčiau:

## Išnašos