Hardwarový registr
Hardwarový registr je v digitální elektronice a výpočetní technice skupina paměťových buněk, které ukládají sadu bitů a na výstupu udržují logické hodnoty odpovídající uloženým datům.[1][2] Registr je obvykle tvořen synchronizovanou sadou bistabilních klopných obvodů, z nichž každý uchovává hodnotu jednoho bitu.[3][4][5] Velikost slova je počet bitů, které je registr schopen uložit, a který je dán počtem použitých paměťových buněk.[6][1] Registr je volatilní paměť, protože vypnutím napájení se uložené informace smažou.[6] Různé registry se liší úložnou kapacitou (např. „32bitový registr“), polaritami signálů, logickými úrovněmi a napájecím napětím a časováním.[3]
Registry jsou základním stavebním blokem digitálních systémů. Slouží např. pro řízení a konfiguraci zařízení, signalizaci jejich stavu a jako vyrovnávací paměti pro data, pro sériovou a paralelní datovou komunikaci nebo jako digitální čítače nebo stavové stroje.
Signály
[editovat | editovat zdroj]Registry mají řadu vstupních a výstupních vodičů, po nichž se přenášejí digitální signály mezi registrem a dalšími obvody.
Registry mají vstupy, které přijímají data určená k uložení, a výstupy, na nichž jsou logické úrovně odpovídající aktuálně uloženým datům.[6][3] Klopné obvody mají společné hodinové vstupy, které při příchodu hrany signálu zajistí uložení vstupních dat do klopných obvodů.[3][5][7] Klopné obvody mají často také společný vstup reset, který se používá pro vymazaní (obvykle vynulování) uložených dat.[4]
Vstupní signály
[editovat | editovat zdroj]- Reset (nulování) – inicializuje všechny klopné obvody do určeného stavu, obvykle '0'. Podle návrhu registru může být nulování synchronní nebo asynchronní.[3] Obvykle se používají k počátečnímu vynulování klopných obvodů.[4]
- Clock (hodiny) – vzestupná nebo sestupná hrana signálu (aktivní hrana[3]), způsobí, že na datových vstupech budou zapsána do klopných obvodů registru. U registrů, která mají vstup pro synchronní reset, vyvolá aktivní hrana hodin reset místo uložení vstupních dat.
- Data in (vstup dat) – vstup dat, která budou uložena při příchodu aktivní hrany hodinového signálu, do každého bistabilního klopného obvodu jeden bit. U registrů s klopnými obvody se datové vstupy obvykle označují až .
Výstupní signály
[editovat | editovat zdroj]- Data out (výstup dat) – aktuálně uložený data, jeden bit na bistabilní klopný obvod, spojitě emitovaný, stabilní kromě při přechodu to nový uložený hodnoty. U registrů s klopnými obvody se datové výstupy obvykle označují až . Některé registry poskytuje nenegované i komplementární data výstupy. Například integrovaný obvod 74175 MSI obsahuje čtyři klopné obvody, pro které jsou k dispozici přímé i negované hodnoty.
Nepoužité signály
[editovat | editovat zdroj]Nepoužité vstupy se obvykle připojují na pevnou logickou úroveň, aby se zabránilo jejich ovlivňování okolními vodiče, které by mohlo způsobovat nepředpověditelné chování nebo poškození registru.
Nepoužité výstupy jsou obvykle ponechány nezapojené.
Datová struktura
[editovat | editovat zdroj]Data uložená v registru mohou reprezentovat libovolná binární data o velikosti dané úložnou kapacitou registru. Pokud data reprezentují dvojkové celé číslo, vstupy registru se obvykle značí až a výstupy až , kde index 0 má nejméně významný a index nejvýznamnější datový bit.
Implementace
[editovat | editovat zdroj]Registry jsou realizovány různými způsoby – mohou to být samostatné integrované obvody MSI, registry uvnitř obvodů ASIC nebo programovatelných procesorů nebo jako obvodové bloky v obvodech FPGA. V posledním případě se registry obvykle instanciují podle popisu v jazyce VHDL, Verilog nebo nějakém jiném jazyce pro popis hardwaru. Následující VHDL kód například popisuje 32bitový registr s povolením načtení a asynchronním resetem:
entity reg32 is -- 32bitový registr s povolením načtení
port (
CLK : in std_logic; -- hodiny
RESET : in std_logic; -- asynchronní reset
LD : in std_logic; -- povolení načtení
D : in std_logic_vector(31 downto 0); -- datové vstupy
Q : out std_logic_vector(31 downto 0) -- uložená data
);
end reg32;
architecture behavioral of reg32 is
begin
process(CLK, RESET)
begin
if RESET = '1' then. -- je-li RESET aktivní
Q <= (others => '0'); -- vynuluj uložená data
elsif rising_edge(CLK) then -- jinak pokud přichází aktivní hrana CLK
if LD = '1' then -- a načtení je povoleno
Q <= D; -- ulož vstupní data
end if;
end if; -- jinak zachovej uložená data
end process;
end behavioral;
Pokud je registr realizován samostatným integrovaným obvodem MSI, je tvořen polovodičovým čipem, který je bondován a dodáván v samostatném pozdře. [8]
- Polovodičový čip realizující osmibitový registr (Motorola MC74HCT374A)
- Osmibitový registr v plastovém pouzdře DIL (Texas Instruments SN74S374N)
Viditelnost signálu
[editovat | editovat zdroj]Podle implementace a účelu mohou být všechny datové vstupy a výstupy registru být všechny veřejné (dostupné z externích obvodů) nebo mohou být některé datové vstupy nebo výstupy (nebo obojí) navrženy pouze pro interní použití, jako je tomu v případě posuvného registru se sériovým vstupem i výstupem, u něhož je pro vnější obvody viditelný pouze jeden bitový vstup jeden bitový výstup.
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Hardware register na anglické Wikipedii.
- 1 2 MANO, Morris; CILETTI, Michael, 2017. Digital Design With an Introduction to the Verilog HDL, VHDL, and SystemVerilog. [s.l.]: Pearson. ISBN 978-0134549897.
- ↑ MAINI, Anil, 2007. Digital Electronics. [s.l.]: Wiley. ISBN 978-0470032145.
- 1 2 3 4 5 6 BROWN, Stephen; VRANESIC, Zvonko, 2009. Fundamentals of Digital Logic with VHDL Design. [s.l.]: McGraw Hill. Dostupné online. ISBN 978-0073529530.
- 1 2 3 MANO, M. Morris, 1979. Digital Logic and Computer Design. [s.l.]: Pearson. Dostupné online. ISBN 978-0132145107.
- 1 2 TANENBAUM, Andrew; AUSTIN, Todd, 2013. Structured Computer Organization. [s.l.]: Pearson. ISBN 978-0132916523.
- 1 2 3 PATTERSON, David; HENNESSY, John. Computer Organization and Design: The Hardware/Software Interface. [s.l.]: Morgan Kaufmann ISBN 978-0123747501.
- ↑ ROTH, Charles; KINNEY, Larry. Fundamentals of Logic Design. [s.l.]: Cengage ISBN 978-1337620352.
- ↑ BROCK, Les, 1970. Designing With MSI. [s.l.]: Signetics. (anglicky)