Ir al contenido

Diferencia entre revisiones de «Bus (informática)»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Sin resumen de edición
Línea 1: Línea 1:
[[Archivo:Motherboard bus.jpg|280px|thumb|Buses de comunicación en un [[circuito impreso]].]]
{{referencias}}
[[Archivo:Computer buses.svg|thumb|350px|En el diagrama se ven los buses de dirección, datos, y control, que van desde la [[unidad central de procesamiento]] a la [[memoria de acceso aleatorio]], la [[memoria de solo lectura]], la [[entrada/salida]], etc.]]


En [[arquitectura de computadores]], el '''bus''' (o canal) es un [[sistema digital]] que transfiere datos entre los componentes de una [[computadora]] o entre computadoras. Está formado por cables o pistas en un [[circuito impreso]], dispositivos como [[resistor]]es y [[condensador eléctrico|condensadores]] además de [[Circuito integrado|circuitos integrados]].
El '''bus de direcciones''' es un canal del [[microprocesador]] totalmente independiente del [[bus de datos]] donde se establece la dirección de memoria del dato en tránsito.


En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la comunicación entre las partes del computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
El bus de dirección consiste en el conjunto de líneas eléctricas necesarias para establecer una dirección.La capacidad de la memoria que se puede direccionar depende de la cantidad de bits que conforman el bus de direcciones, siendo 2<sup>n</sup> (dos elevado a la ene) el tamaño máximo en bits del banco de memoria que se podrá direccionar con n líneas. Por ejemplo, para direccionar una memoria de 256 bits, son necesarias al menos 8 líneas, pues 2<sup>8</sup> = 256. Adicionalmente pueden ser necesarias líneas de control para señalar cuando la dirección está disponible en el bus. Esto depende del diseño del propio bus.


La tendencia en los últimos años es hacia uso de buses seriales como el [[Universal Serial Bus|USB]], [[Firewire]] para comunicaciones con [[periférico]]s reemplazando los buses paralelos, incluyendo caso como el del [[microprocesador]] con el [[chipset]] en la [[placa base]]. Esto a pesar de que el bus serial posee una lógica compleja (requiriendo mayor poder de cómputo que el bus paralelo) a cambio de velocidades y eficacias mayores.
== Buses multiplexados ==
Algunos diseños utilizan líneas eléctricas multiplexadas para el bus de dirección y el bus de datos. Esto significa que un mismo conjunto de líneas eléctricas se comportan unas veces como ''bus de dirección'' y otras veces como ''bus de datos'', pero nunca al mismo tiempo. Una línea de control permite discernir cual de las dos funciones está activa.


Existen diversas especificaciones de bus que definen un conjunto de características mecánicas como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.
== Las direcciones de memoria ==

Las direcciones son [[Número natural|números naturales]] (en [[Sistema hexadecimal|hexadecimal]]) que indican la posición de los [[dato]]s dentro de la [[memoria principal]] o del espacio de direcciones de la unidad de entrada/salida. Las direcciones son generadas por la [[Unidad central de procesamiento|CPU]], que es quien decide a qué dato se debe acceder en cada momento.
== Funcionamiento ==
La función del bus es la de permitir la conexión lógica entre distintos subsistemas de un sistema digital, enviando datos entre dispositivos de distintos órdenes: desde dentro de los mismos circuitos integrados, hasta equipos digitales completos que forman parte de supercomputadoras.

La mayoría de los buses están basados en [[Conductor eléctrico|conductores metálicos]] por los cuales se trasmiten [[señal]]es eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las señales y entregarlas como [[dato]]s útiles. Las [[Señal digital|señales digitales]] que se trasmiten son de datos, de direcciones o señales de control.
Los buses definen su capacidad de acuerdo a la [[frecuencia]] máxima de envío y al ancho de los datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta frecuencia, el ancho de datos debe ser pequeño. Esto se debe a que la interferencia entre las señales (crosstalk) y la dificultad de [[Sesgo de reloj|sincronizarlas]], crecen con la frecuencia, de manera que un bus con pocas señales es menos susceptible a esos problemas y puede funcionar a alta velocidad.

Todos los buses de computador tienen funciones especiales como las [[interrupciones]] y las [[DMA]] que permiten que un dispositivo periférico acceda a una CPU o a la memoria usando el mínimo de recursos.

=== Primera generación ===
[[Archivo:Unibus.jpg|280px|thumb|Bus [[Backplane]] del PDP-11 junto con algunas tarjetas.]]

Los primeros computadores tenían 2 sistemas de buses, uno para la memoria y otro para los demás dispositivos. La CPU tenía que acceder a dos sistemas con instrucciones para cada uno, protocolos y sincronizaciones diferentes.

La empresa [[Digital Equipment Corporation|DEC]] notó que el uso de dos buses no era necesario si se combinaban las direcciones de memoria con las de los periféricos en un solo espacio de memoria ([[E/S mapeada en memoria|mapeo]]), de manera que la arquitectura se simplificaba ahorrando costos de fabricación en equipos fabricados en masa, como eran los primeros [[minicomputador]]es.

Los primeros [[microcomputador]]es se basaban en la conexión de varias tarjetas de circuito impreso a un bus [[Backplane]] pasivo que servía de eje al sistema. En ese bus se conectaba la tarjeta de [[Unidad central de procesamiento|PU]] que realiza las funciones de arbitro de las comunicaciones con las demás tarjetas de dispositivo conectadas; las tarjetas incluían la memoria, controladoras de diskette y disco, adaptadores de vídeo. La CPU escribía o leía los datos apuntando a la dirección que tuviera el dispositivo buscado en el espacio único de direcciones haciendo que la información fluyera a través del bus principal.

Entre las implementaciones más conocidas, están los buses [[Bus S-100]] y el [[Bus ISA]] usados en varios microcomputadores de los años 70 y 80. En ambos, el bus era simplemente una extensión del bus del [[Unidad central de procesamiento|procesador]] de manera que funcionaba a la misma frecuencia. Por ejemplo en los sistemas con procesador [[Intel 80286]] el bus ISA tenía 6 u 8 [[megahercio]]s de frecuencia dependiendo del procesador.<ref>{{cita web |url=http://www.karbosguide.com/books/pcarchitecture/chapter17.htm |título=PC Architecture. Chapter 17. The CPU’s immediate surroundings. A book by Michael B. Karbo |añoacceso=2009 }}</ref>

=== Segunda generación ===
[[Archivo:Chipset 875 Intel.JPG|280px|thumb|Jerarquía de diversos buses en un equipo relativamente moderno: SATA, FSB, AGP, USB entre otros.]]

El hecho de que el bus fuera pasivo y que usara la CPU como control, representaba varios problemas para la ampliación y modernización de cualquier sistema con esa arquitectura. Además que la CPU utilizaba una parte considerable de su potencia en controlar el bus.

Desde que los procesadores empezaron a funcionar con frecuencias más altas, se hizo necesario jerarquizar los buses de acuerdo a su frecuencia: se creó el concepto de bus de sistema (conexión entre el procesador y la [[Memoria RAM|RAM]]) y de buses de expansión, haciendo necesario el uso de un [[Circuito integrado auxiliar|chipset]].
El bus [[Bus ISA|ISA]] utilizado como backplane en el [[Computador personal|PC]] IBM original pasó de ser un bus de sistema a uno de expansión, dejando su arbitraje a un integrado del chipset e implementando un bus a una frecuencia más alta para conectar la memoria con el procesador.

En cambio, el bus Nubus era independiente desde su creación, tenía un controlador propio y presentaba una interfaz estándar al resto del sistema, permitiendo su inclusión en diferentes arquitecturas. Fue usado en diversos equipos, incluyendo algunos de [[Apple]] y se caracterizaba por tener un ancho de 32 [[bit]]s y algunas capacidades [[Plug and Play]] (autoconfiguración), que lo hacían muy versátil y adelantado a su tiempo. Entre otros ejemplos de estos buses autónomos, están el [[AGP]] y el bus [[Peripheral Component Interconnect|PCI]].

=== Tercera generación ===
Los buses de tercera generación se caracterizan por tener conexiones punto a punto, a diferencia de los buses arriba nombrados en los que se comparten señales de reloj. Esto se logra reduciendo fuertemente el número de conexiones que presenta cada dispositivo usando interfaces seriales. Entonces cada dispositivo puede negociar las características de enlace al inicio de la conexión y en algunos casos de manera dinámica, al igual que sucede en las redes de comunicaciones. Entre los ejemplos más notables, están los buses [[PCI-Express]], el [[Infiniband]] y el [[HyperTransport]].

== Tipos de bus ==
Existen dos grandes tipos clasificados por el método de envío de la información: '''bus paralelo''' o '''bus serie'''.

Hay diferencias en el desempeño y hasta hace unos años se consideraba que el uso apropiado dependía de la longitud física de la conexión: para cortas distancias el bus paralelo, para largas el serial.YEAH

=== Bus paralelo ===
Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda de varias líneas que tienen funciones fijas. La cantidad de datos enviada es bastante grande con una frecuencia moderada y es igual al ancho de los datos por la frecuencia de funcionamiento. En los computadores ha sido usado de manera intensiva, desde el bus del procesador, los buses de discos duros, tarjetas de expansión y de vídeo, hasta las impresoras.

[[Archivo:Computer buses.svg|280px|thumb|Diagrama de un Bus [[Backplane]] como extensión del bus de procesador.]]

El ''[[front-side bus]]'' de los procesadores Intel es un bus de este tipo y como cualquier bus presenta unas funciones en líneas dedicadas:

* Las '''líneas de dirección''' son las encargadas de indicar la posición de memoria o el dispositivo con el que se desea establecer comunicación.
* Las '''líneas de control''' son las encargadas de enviar señales de arbitraje entre los dispositivos. Entre las más importantes están las líneas de interrupción, DMA y los indicadores de estado.
* Las '''líneas de datos''' trasmiten los bits de forma aleatoria de manera que por lo general un bus tiene un ancho que es potencia de 2.

Un bus paralelo tiene conexiones físicas complejas, pero la lógica es sencilla, que lo hace útil en sistemas con poco poder de cómputo. En los primeros microcomputadores, el bus era simplemente la extensión del bus del procesador y los demás integrados "escuchan" las línea de direcciones, en espera de recibir instrucciones. En el PC IBM original, el diseño del bus fue determinante a la hora de elegir un procesador con I/O de 8 bits ([[Intel 8088]]), sobre uno de 16 (el 8086), porque era posible usar hardware diseñado para otros procesadores, abaratando el producto.

=== Bus serie ===
En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas de [[software]]. Está formado por pocos conductores y su ancho de banda depende de la frecuencia. Es usado desde hace menos de 10 años en buses para discos duros, unidades de estado sólido, tarjetas de expansión y para el bus del procesador.

== Referencias ==
{{Listaref}}


== Véase también ==
== Véase también ==
* [[Circuito integrado auxiliar]]
* [[HyperTransport]]
* ''[[Front-side bus]]''
* [[Bus de direcciones]]
* [[Bus de datos]]
* [[Bus de datos]]
* [[Bus de control]]
* [[Bus de control]]

== Enlaces externos ==
{{Commonscat|Computer buses}}
{{Commonscat|Computer buses}}


* [http://www.dte.us.es/personal/barbancho/AeIDise%F1oBusCampo.pdf PDF IEMicro y repaso a otros modelos]
[[Categoría:Buses|Direccion]]
* [http://www.dte.us.es/personal/barbancho/IEuBusCampoBajoConsumo.pdf IEmicro]
[[Categoría:Arquitectura de computadoras]]

[[Categoría:Tarjeta madre]]
[[Categoría:Buses| ]]


[[af:Rekenaarbus]]
[[bg:Адресна шина]]
[[az:Şin (kompyuter)]]
[[de:Bus (Datenverarbeitung)#Adressbus]]
[[bn:বাস (কম্পিউটার)]]
[[en:Address bus]]
[[et:Aadressisiin]]
[[br:Bus stlennegel]]
[[eu:Helbide-bus]]
[[bs:Sabirnica]]
[[fr:Bus d'adresse]]
[[ca:Bus (informàtica)]]
[[cs:Sběrnice]]
[[ja:アドレスバス]]
[[da:Bus (datakommunikation)]]
[[ko:주소 버스]]
[[de:Bus (Datenverarbeitung)]]
[[mhr:Адресын шайже]]
[[nl:Adresbus]]
[[en:Bus (computing)]]
[[pl:Szyna adresowa]]
[[eo:Buso (komputiko)]]
[[et:Siin]]
[[pt:Barramento de endereços]]
[[fi:Väylä]]
[[ru:Шина адреса]]
[[sv:Adressbuss]]
[[fr:Bus informatique]]
[[he:אפיק נתונים]]
[[ta:முகவரிப் பாட்டை]]
[[hr:Sabirnica]]
[[uk:Шина адреси]]
[[hu:Busz (informatika)]]
[[zh:位址匯流排]]
[[id:Bus komputer]]
[[it:Bus (informatica)]]
[[ja:バス (コンピュータ)]]
[[kk:Құрсым]]
[[ko:버스 (컴퓨팅)]]
[[lb:Bus (Sammelleitung)]]
[[lt:Magistralė (kompiuteris)]]
[[lv:Kopne]]
[[mhr:Системшай]]
[[mn:Мэдээлэл дамжуулах түгээгүүр]]
[[my:ဘတ်စ် (ကွန်ပျူတာ)]]
[[nn:Bussystem]]
[[pl:Szyna danych]]
[[pt:Barramento]]
[[ru:Шина (компьютер)]]
[[si:සූදානම් ක්‍රමවේදය (Bus Topology)]]
[[simple:Computer bus]]
[[sl:Vodilo]]
[[sr:Магистрала (рачунарство)]]
[[sv:Buss (elektronisk term)]]
[[ta:தரவுப் பாட்டை]]
[[th:BUS]]
[[tl:Bus ng kompyuter]]
[[tr:Bilgisayar veri yolu]]
[[uk:Комп'ютерна шина]]
[[vi:Bus (máy tính)]]
[[zh:I/O总线]]

Revisión del 11:46 20 sep 2012

Buses de comunicación en un circuito impreso.

En arquitectura de computadores, el bus (o canal) es un sistema digital que transfiere datos entre los componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados.

En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la comunicación entre las partes del computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.

La tendencia en los últimos años es hacia uso de buses seriales como el USB, Firewire para comunicaciones con periféricos reemplazando los buses paralelos, incluyendo caso como el del microprocesador con el chipset en la placa base. Esto a pesar de que el bus serial posee una lógica compleja (requiriendo mayor poder de cómputo que el bus paralelo) a cambio de velocidades y eficacias mayores.

Existen diversas especificaciones de bus que definen un conjunto de características mecánicas como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.

Funcionamiento

La función del bus es la de permitir la conexión lógica entre distintos subsistemas de un sistema digital, enviando datos entre dispositivos de distintos órdenes: desde dentro de los mismos circuitos integrados, hasta equipos digitales completos que forman parte de supercomputadoras.

La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las señales y entregarlas como datos útiles. Las señales digitales que se trasmiten son de datos, de direcciones o señales de control.

Los buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al ancho de los datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta frecuencia, el ancho de datos debe ser pequeño. Esto se debe a que la interferencia entre las señales (crosstalk) y la dificultad de sincronizarlas, crecen con la frecuencia, de manera que un bus con pocas señales es menos susceptible a esos problemas y puede funcionar a alta velocidad.

Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA que permiten que un dispositivo periférico acceda a una CPU o a la memoria usando el mínimo de recursos.

Primera generación

Bus Backplane del PDP-11 junto con algunas tarjetas.

Los primeros computadores tenían 2 sistemas de buses, uno para la memoria y otro para los demás dispositivos. La CPU tenía que acceder a dos sistemas con instrucciones para cada uno, protocolos y sincronizaciones diferentes.

La empresa DEC notó que el uso de dos buses no era necesario si se combinaban las direcciones de memoria con las de los periféricos en un solo espacio de memoria (mapeo), de manera que la arquitectura se simplificaba ahorrando costos de fabricación en equipos fabricados en masa, como eran los primeros minicomputadores.

Los primeros microcomputadores se basaban en la conexión de varias tarjetas de circuito impreso a un bus Backplane pasivo que servía de eje al sistema. En ese bus se conectaba la tarjeta de PU que realiza las funciones de arbitro de las comunicaciones con las demás tarjetas de dispositivo conectadas; las tarjetas incluían la memoria, controladoras de diskette y disco, adaptadores de vídeo. La CPU escribía o leía los datos apuntando a la dirección que tuviera el dispositivo buscado en el espacio único de direcciones haciendo que la información fluyera a través del bus principal.

Entre las implementaciones más conocidas, están los buses Bus S-100 y el Bus ISA usados en varios microcomputadores de los años 70 y 80. En ambos, el bus era simplemente una extensión del bus del procesador de manera que funcionaba a la misma frecuencia. Por ejemplo en los sistemas con procesador Intel 80286 el bus ISA tenía 6 u 8 megahercios de frecuencia dependiendo del procesador.[1]

Segunda generación

Jerarquía de diversos buses en un equipo relativamente moderno: SATA, FSB, AGP, USB entre otros.

El hecho de que el bus fuera pasivo y que usara la CPU como control, representaba varios problemas para la ampliación y modernización de cualquier sistema con esa arquitectura. Además que la CPU utilizaba una parte considerable de su potencia en controlar el bus.

Desde que los procesadores empezaron a funcionar con frecuencias más altas, se hizo necesario jerarquizar los buses de acuerdo a su frecuencia: se creó el concepto de bus de sistema (conexión entre el procesador y la RAM) y de buses de expansión, haciendo necesario el uso de un chipset.

El bus ISA utilizado como backplane en el PC IBM original pasó de ser un bus de sistema a uno de expansión, dejando su arbitraje a un integrado del chipset e implementando un bus a una frecuencia más alta para conectar la memoria con el procesador.

En cambio, el bus Nubus era independiente desde su creación, tenía un controlador propio y presentaba una interfaz estándar al resto del sistema, permitiendo su inclusión en diferentes arquitecturas. Fue usado en diversos equipos, incluyendo algunos de Apple y se caracterizaba por tener un ancho de 32 bits y algunas capacidades Plug and Play (autoconfiguración), que lo hacían muy versátil y adelantado a su tiempo. Entre otros ejemplos de estos buses autónomos, están el AGP y el bus PCI.

Tercera generación

Los buses de tercera generación se caracterizan por tener conexiones punto a punto, a diferencia de los buses arriba nombrados en los que se comparten señales de reloj. Esto se logra reduciendo fuertemente el número de conexiones que presenta cada dispositivo usando interfaces seriales. Entonces cada dispositivo puede negociar las características de enlace al inicio de la conexión y en algunos casos de manera dinámica, al igual que sucede en las redes de comunicaciones. Entre los ejemplos más notables, están los buses PCI-Express, el Infiniband y el HyperTransport.

Tipos de bus

Existen dos grandes tipos clasificados por el método de envío de la información: bus paralelo o bus serie.

Hay diferencias en el desempeño y hasta hace unos años se consideraba que el uso apropiado dependía de la longitud física de la conexión: para cortas distancias el bus paralelo, para largas el serial.YEAH

Bus paralelo

Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda de varias líneas que tienen funciones fijas. La cantidad de datos enviada es bastante grande con una frecuencia moderada y es igual al ancho de los datos por la frecuencia de funcionamiento. En los computadores ha sido usado de manera intensiva, desde el bus del procesador, los buses de discos duros, tarjetas de expansión y de vídeo, hasta las impresoras.

Diagrama de un Bus Backplane como extensión del bus de procesador.

El front-side bus de los procesadores Intel es un bus de este tipo y como cualquier bus presenta unas funciones en líneas dedicadas:

  • Las líneas de dirección son las encargadas de indicar la posición de memoria o el dispositivo con el que se desea establecer comunicación.
  • Las líneas de control son las encargadas de enviar señales de arbitraje entre los dispositivos. Entre las más importantes están las líneas de interrupción, DMA y los indicadores de estado.
  • Las líneas de datos trasmiten los bits de forma aleatoria de manera que por lo general un bus tiene un ancho que es potencia de 2.

Un bus paralelo tiene conexiones físicas complejas, pero la lógica es sencilla, que lo hace útil en sistemas con poco poder de cómputo. En los primeros microcomputadores, el bus era simplemente la extensión del bus del procesador y los demás integrados "escuchan" las línea de direcciones, en espera de recibir instrucciones. En el PC IBM original, el diseño del bus fue determinante a la hora de elegir un procesador con I/O de 8 bits (Intel 8088), sobre uno de 16 (el 8086), porque era posible usar hardware diseñado para otros procesadores, abaratando el producto.

Bus serie

En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas de software. Está formado por pocos conductores y su ancho de banda depende de la frecuencia. Es usado desde hace menos de 10 años en buses para discos duros, unidades de estado sólido, tarjetas de expansión y para el bus del procesador.

Referencias

  1. «PC Architecture. Chapter 17. The CPU’s immediate surroundings. A book by Michael B. Karbo». Consultado el 2009. 

Véase también

Enlaces externos