# Latència

La latència és en xarxes informàtiques de dades, la suma de retards temporals dintre d'una xarxa. Es produeix un retard per la demora en la propagació i transmissió de paquets en la xarxa. Altres factors que influeixen en la latència d'una xarxa són: La mida dels paquets transmesos o la mida de la memòria intermèdia dels dispositius involucrats. També hi ha latència en tecnologies d'ús musical, com els transformadors d'MP3 a vinils analògics. El traspàs d'informació d'un mecanisme a un altre sempre comporta un retard, que usualment està al voltant dels mil·lisegons, però depenent del cas pot ser inferior o més notori.
Un punt molt important és que sempre hi haurà latència, encara que es parli de latència zero. Utilitzem aquest darrer terme quan la latència present ens resulta imperceptible. En general es refereix al temps que triga una acció des del moment d'inici fins que finalitza.
En xarxes també es pot interpretar com el temps que triga a desplaçar-se un paquet de dades (o una petició d'usuari) des d'un punt fins a un altre. Però es tracta d'una mala traducció, perquè aleshores no s'està parlant de latència, sinó de retard (en anglès delay).
En xarxes TCP/IP, és habitual mesurar la latència de la xarxa amb la funció "ping", que ens donarà com a valor, en mil·lisegons (ms), el temps que triga un determinat paquet en anar fins al destí, més el temps de la confirmació, per part del destí, que s'ha rebut el paquet.
És important en elements com la transmissió de dades, la memòria d'ordinador, etc.

## Latència de comunicació

Encara que els senyals intercontinentals de televisió viatgen a la velocitat de la llum, desenvolupen una latència perceptible a grans distàncies. Això és clarament apreciable quan un presentador de notícies de televisió que està en un estudi parla amb un periodista que està a l'altra punta del món (o a una distància considerable). El senyal viatja des del presentador a través d'un Satèl·lit de comunicacions situat a òrbita geosíncrona al periodista, i després fa tot el camí de tornada per l'òrbita geosíncrona i després a l'estudi, el que resulta en un viatge de més de cent mil quilòmetres.

## Latència de memòria

Es denomina latència d'una memòria RAM als diferents retards produïts en l'accés als diferents components de la memòria. Aquests retards influeixen en el temps d'accés de la memòria per part de la CPU, aquest es mesura en nanosegons (10^-9 s). Resulta de particular interès en el món de l'overclocking poder ajustar aquests valors per obtenir el menor temps d'accés possible.
Quan es desitja accedir a la memòria, és imprescindible indicar el número de taulell, el número de fila dins del taulell, i el número de columna o cel·la dins d'aquesta fila, en aquest ordre.
El temps que tarda la memòria a col·locar-se en la posició necessària és relativament petit, encara que són tantes les dades i instruccions que s'emmagatzemen a la memòria, que al final el procés pot arribar a fer-se lent.
Com que es llegirà/escriurà moltes vegades de/en la memòria, es necessita un sistema que llegeixi moltes cel·les al mateix temps, sense transportar les dades. A continuació, transportar totes les dades a la vegada (dada o instrucció, ja que és l'únic que s'emmagatzema en la memòria). Aquest sistema de llegir moltes cel·les i després transportar és conegut com a bus a ràfegues o burst.
Si per cada cel·la que es llegís, la dada/instrucció es transportés al seu destí, la lectura/escriptura de memòria seria un procés massa lent.

## Tipus

Hi ha diversos tipus de latències en les memòries. Tanmateix, les més importants són:
* CAS: indica el temps que tarda la memòria a col·locar-se sobre una columna o
cel·la.
* RAS: indica el temps que tarda la memòria a col·locar-se sobre una fila.
* ACTIVE: indica el temps que tarda la memòria a activar un taulell.
* PRECHARGE: indica el temps que tarda la memòria a desactivar un taulell.

## Temps d'accés

Ordinadors s'executen en un conjunt d'instruccions diu executable. En els sistemes operatius, l'execució de l'executable pot ser posposada si altres executables (també conegut com els processos) són també d'execució. A més, el sistema operatiu pot programar el moment per realitzar l'acció que l'executable està al comandament. Per exemple, suposem que un procés d'ordres que la tensió de sortida una targeta d'equip es fixi alt-baix-alt-baix, etc .. a una velocitat de 1.000 Hz El sistema operatiu pot optar per ajustar la programació de cada transició (alt-baix o baix-alt) basat en un rellotge intern. La latència és el retard entre la instrucció executable al comandament de la transició i el maquinari de fet la transició de la tensió de major a menor o de menor a major.
En Microsoft Windows, sembla que el moment de comandaments en el maquinari no és exacta. Les dades empíriques suggereixen que Windows (usant el temporitzador d'apagat del Windows que accepti mil·lisegons hores de son) programarà en un rellotge de 1.024 Hz i es demora de 24 de 1024 transicions per segon per fer una mitjana de 1.000 Hz per la freqüència d'actualització. [Edita] Aquest pot tenir greus conseqüències per als algorismes de temps discret que es basen en la sincronització bastant constant entre les actualitzacions com les que es troben en la teoria de control.
La funció del son o similar API de Windows no van estar en el punt previst per a fins de l'hora exacta. Algunes rutines de l'API multimèdia orientat com timeGetTime i els seus germans una millor consistència de temps. No obstant això, els consumidors i del grau del servidor de Windows (en l'actualitat els nucli basat en NT) no anaven a ser els sistemes operatius en temps real. Dràsticament els temps més precisa es podria aconseguir mitjançant l'ús d'extensions de maquinari dedicat i targetes de circuit de control.
Linux pot tenir els mateixos problemes amb la programació de maquinari d'E / S. El problema de Linux és mitigat pel fet que el programador del nucli del sistema operatiu procés pot ser substituït per un programador en temps real. En els sistemes integrats, l'execució en temps real de les instruccions que s'espera del baix nivell del sistema operatiu encastat.

## Temps d'espera

El temps que triga la memòria a proporcionar la dada, és la suma de les tres latències: ACTIVE, RAS i CAS.
Com es comenta anteriorment, abans d'enviar la dada/instrucció a on hagi d'anar, s'han de llegir diverses cel·les de memòria, per tant s'ha de passar d'una cel·la a una altra, i anar esperant la seva corresponent latència CAS.
Si cada tauler té, per exemple 64 cel·les, i es van a llegir 20 posicions, les latències totals a esperar són:
* 1 X ACTIVE (ja que es llegeixen menys de 64 cel·les, que són les que té el tauler complet)
* 3 X RAS (ja que cada fila té 8 posicions)
* 20 X CAS (ja que es van a llegir 20 cel·les)
La latència més important, com queda patent, és la latència CAS, i com més petita sigui aquesta, millor rendiment tindrà l'ordinador en general.

## Temps real

Sigui una placa base amb Front Side Bus o FSB a 200 MHZ. El temps de cada cicle de rellotge és: F = 1 / T → 200 * 10^6 = 1 / T → T = 1 / 200 * 10^6 → T = 5 * 10^-9 s = 5 nanosegons.
NOTA: Les memòries RAM, que antigament utilitzaven els Pentium I eren de 70 ns, les EDO que eren les mateixes però una mica més evolucionades eren de 60 ns, així que es pot calcular fàcilment el fsb d'aquells sistemes. Les primeres SDRAM que van aparèixer, les PC 100, eren de 10 ns, evidentment el fsb d'aquells sistemes era de 100 MHz.

## Lectura o escriptura en memòria

El procés a seguir quan es desitgi llegir o escriure dins la memòria serà el següent:
Enviar un senyal per activar el taulell i esperar que acabi el temps d'activació (latència ACTIVE).
Enviar un senyal per saber quina és la fila on es deu posicionar i esperar la seva latència (latència RAS).
Enviar un senyal per saber quina és la columna o cel·la on es deu posicionar i esperar (latència CAS).