¿Por qué necesitamos tantos transistores?

34

Los transistores tienen múltiples propósitos en un circuito eléctrico, es decir, interruptores, para amplificar señales electrónicas, lo que le permite controlar la corriente, etc.

Sin embargo, recientemente leí sobre la ley de Moore, entre otros artículos aleatorios de Internet, que los dispositivos electrónicos modernos tienen una gran cantidad de transistores incorporados, con la cantidad de transistores que se encuentran en la electrónica moderna en el rango de millones, si no miles de millones.

Sin embargo, ¿por qué exactamente alguien necesitaría tantos transistores de todos modos? Si los transistores funcionan como interruptores, etc., ¿por qué necesitamos un absurdo tal gran cantidad de ellos en nuestros dispositivos electrónicos modernos? ¿No somos capaces de hacer las cosas más eficientes por lo que utilizamos wayy menos transistores que lo que estamos utilizando actualmente?

Kenneth .J
fuente
77
Te sugiero que veas de qué está hecho tu chip. Sumadores, multiplicadores, multiplexores, memoria, más memoria ... Y piense en los números de estas cosas que deben estar presentes allí ...
Dzarda
99
Algo relacionado (y autopromocionado): ¿Por qué más transistores = más potencia de procesamiento?
Paul A. Clayton
1
Además, el uso continuo de transistores como reemplazos para la mayoría de los dispositivos mecánicos ayudó a moldear la electrónica de consumo moderna más que cualquier otra cosa. Imagine que su teléfono se bloquea cada vez que enciende o apaga la luz de fondo (mientras tiene el tamaño y el peso de un automóvil)
Marque el
77
Usted pregunta por qué no podemos "hacer las cosas más eficientes" para usar menos transistores; Usted asume que buscamos minimizar el número de transistores. Pero, ¿qué pasa si se mejora la eficiencia energética al agregar más para el control? ¿O más notablemente la eficiencia de tiempo en hacer cualquier cálculo? La "eficiencia" no es una cosa.
OJFord 01 de
2
No es que necesitemos tantos transistores para construir una CPU, pero como podemos hacer todos esos transistores, también podríamos usarlos de manera que la CPU sea más rápida.
user253751

Respuestas:

46

Los transistores son interruptores, sí, pero los interruptores son más que solo para encender y apagar las luces.

Los interruptores se agrupan en puertas lógicas. Las puertas lógicas se agrupan en bloques lógicos. Los bloques lógicos se agrupan en funciones lógicas. Las funciones lógicas se agrupan en chips.

Por ejemplo, una compuerta TTL NAND generalmente usa 2 transistores (las compuertas NAND se consideran uno de los componentes básicos de la lógica, junto con NOR):

esquemático

simular este circuito : esquema creado con CircuitLab

A medida que la tecnología pasó de TTL a CMOS (que ahora es el estándar de facto), básicamente se duplicó instantáneamente los transistores. Por ejemplo, la puerta NAND pasó de 2 transistores a 4:

esquemático

simular este circuito

Se puede hacer un pestillo (como un SR) utilizando 2 puertas CMOS NAND, por lo que 8 transistores. Por lo tanto, se podría hacer un registro de 32 bits usando 32 flip-flops, por lo que 64 puertas NAND o 256 transistores. Una ALU puede tener múltiples registros, además de muchas otras puertas, por lo que la cantidad de transistores crece rápidamente.

Cuanto más complejas son las funciones que realiza el chip, se necesitan más compuertas y, por lo tanto, más transistores.

Su CPU promedio en estos días es considerablemente más compleja que decir un chip Z80 de hace 30 años. No solo utiliza registros que son 8 veces el ancho, sino que las operaciones reales que realiza (transformaciones 3D complejas, procesamiento de vectores, etc.) son mucho más complejas de lo que pueden realizar los chips más antiguos. Una sola instrucción en una CPU moderna puede llevar muchos segundos (o incluso minutos) de cálculo en un viejo 8-amargo, y todo lo que se hace, en última instancia, al tener más transistores.

Majenko
fuente
NAND = 4 no 2 transistores y FF son más que solo 2 NOR
marcador de posición el
2
¡Oh mi! realmente necesitas repensar eso. Mostrar ni un solo diseño que cuenta con millones de transistores que se hace en bipolar !! Todos estos diseños son CMOS,
marcador de posición
2
Punto justo. Se ha añadido un segundo esquema para poner de relieve la diferencia, y la consiguiente duplicación de los transistores sólo de eso.
Majenko
3
pullup débil vs fuerte es un problema completamente diferente de TTL vs CMOS. Los BJT vienen en PNP, después de todo. CMOS no implica "duplicar los transistores". La integración a gran escala lo hace, ya que los transistores son mucho más pequeños que las resistencias pull-up en cualquier proceso ASIC.
Ben Voigt
1
Esa no es una puerta TTL NAND. Esa es una puerta lógica RTL.
fuzzyhair2
16

Revisé el proveedor local de varios dispositivos semiconductores y el chip SRAM más grande que tenían era 32Mbits. Eso es 32 millones de áreas individuales donde se puede almacenar un 1 o un 0. Dado que se necesita "al menos" 1 transistor para almacenar 1 bit de información, entonces son 32 millones de transistores como mínimo absoluto.

¿Qué te aporta 32 Mbits? Eso es 4 Mbytes o aproximadamente el tamaño de un archivo de música MP3 de baja calidad de 4 minutos.


EDITAR: una celda de memoria SRAM según mi búsqueda en Google se ve así:

ingrese la descripción de la imagen aquí

Entonces, eso es 6 transistores por bit y más como 192 millones de transistores en ese chip que mencioné.

Andy alias
fuente
... y ahora imagina 8GB de memoria con 68719476736 bits de información
Kamil
1
... excepto que no usan transistores en DRAM.
Majenko 01 de
1
@Majenko: Al menos no tantos como para otras tecnologías. 1 transistor + 1 condensador (obviamente en el microscopio) por 1 bit, si no recuerdo mal.
Rev1.0
28
Cada bit de SRAM tiene al menos 4 y, a menudo, 6 transistores, por lo que 128 millones de transistores o más. DRAM no utiliza transistores para el almacenamiento , pero cada bit (almacenado en un condensador) tiene su propio interruptor de transistor para cargar la tapa.
Brian Drummond
66
Ahora imagine los transistores en un SSD 1T (con 3 bits / celda, y está en más de un chip), pero todavía son 2.7 trillones de transistores solo para el almacenamiento, sin contar el direccionamiento, el control y la asignación de bits defectuosos y desgaste.
Spehro Pefhany 01 de
7

Creo que el OP puede confundirse con dispositivos electrónicos que tienen tantos transistores. La Ley de Moore es principalmente de interés para las computadoras (CPU, SRAM / DRAM / almacenamiento relacionado, GPU, FPGA, etc.). Algo así como un transistor de radio podría ser (en su mayoría) en un solo chip, pero no puede hacer uso de todos los que los transistores. Los dispositivos informáticos, por otro lado, tienen un apetito insaciable por los transistores para funciones adicionales y anchos de datos más amplios.

Phil Perry
fuente
3
Las radios en estos días son dispositivos informáticos, o al menos los contienen. Síntesis digital de frecuencias FM, procesamiento de señal DSP del audio (un problema), control de supervisión digital del cambio de estación, etc. Por ejemplo, el TAS3208 ti.com/lit/ds/symlink/tas3208.pdf
Spehro Pefhany el
1
Todavía no vas a ver decenas o cientos de millones, mucho menos miles de millones, de transistores utilizados para una radio. Claro, se están convirtiendo en pequeñas computadoras de propósito especial con toda esa función digital, pero nada en la escala de una CPU multinúcleo de 64 bits.
Phil Perry
@PhilPerry ¿seguramente una radio digital tiene algo así como un BRAZO? No miles de millones de transistores, pero sí en decenas de millones.
Bueno, si ha cruzado "la línea" de la radio analógica a una computadora que (entre otras cosas) recibe señales de radio, utilizará muchos transistores. Mi punto sigue siendo que la pregunta del OP sobre los dispositivos electrónicos parece una confusión entre las radios analógicas clásicas, etc. y los dispositivos informáticos. Sí, actúan de maneras muy diferentes, incluso si ambas son cajas negras que sacan música del aire.
Phil Perry
4

Como se indicó anteriormente, SRAM requiere 6 transistores por bit. A medida que ampliamos nuestros cachés (para fines de eficiencia), requerimos más y más transistores. Al observar una oblea de procesador , puede ver que la memoria caché es más grande que un solo núcleo de un procesador y, si mira más de cerca los núcleos, verá partes bien organizadas en ella, que también son caché (probablemente datos e instrucciones L1 cachés). Con 6 MB de caché, necesita 300 millones de transistores (más la lógica de direccionamiento).

Pero, también como se indicó anteriormente, los transistores no son la única razón para aumentar el número de transistores. En un Core i7 moderno, tiene más de 7 instrucciones ejecutadas por período de reloj y por núcleo (utilizando la conocida prueba dhrystone). Esto significa una cosa: los procesadores de última generación hacen mucha computación paralela. Hacer más operaciones al mismo tiempo requiere tener más unidades para hacerlo, y una lógica muy inteligente para programarlo. La lógica más inteligente requiere ecuaciones lógicas mucho más complejas y muchos más transistores para implementarla.

Jacen
fuente
SRAM no ha requerido 6 transistores en bastantes años. De hecho, 6T Sram es bastante derrochador cuando usas srams 1T 2T o 4T como esencialmente reemplazos de reemplazo.
cb88
2

Alejándose un poco de los detalles:

Las computadoras son complejos dispositivos de conmutación digital. Tienen capa sobre capa sobre capa de complejidad. El nivel más simple es puertas lógicas como las puertas NAND, como se discutió, luego llega a sumadores, registros de desplazamiento, pestillos, etc. Luego agrega lógica sincronizada, decodificación de instrucciones, cachés, unidades aritméticas, decodificación de direcciones, continúa y sigue y sigue. . (Sin mencionar la memoria, que requiere varios transistores por bit de datos almacenados)

Cada uno de esos niveles está utilizando muchas partes del nivel de complejidad anterior, todo lo cual se basa en muchas y muchas puertas lógicas básicas.

Luego agrega concurrencia. Para obtener un rendimiento cada vez más rápido, las computadoras modernas están diseñadas para hacer muchas cosas al mismo tiempo. Dentro de un solo núcleo, el decodificador de direcciones, la unidad aritmética, el procesador de vectores, el administrador de caché y varios otros subsistemas se ejecutan al mismo tiempo, todos con sus propios sistemas de control y sistemas de temporización.

Las computadoras modernas también tienen un número cada vez mayor de núcleos separados (múltiples CPU en un chip).

Cada vez que sube una capa de abstracción, tiene muchos órdenes de magnitud más complejidad. Incluso el nivel más bajo de complejidad tiene miles de transistores. Sube a subsistemas de alto nivel como una CPU y estás hablando de al menos millones de transistores.

Luego están las GPU (unidades de procesamiento de gráficos). Una GPU puede tener MIL procesadores de punto flotante separados que están optimizados para hacer matemáticas vectoriales, y cada subprocesador tendrá varios millones de transistores.

Duncan C
fuente
1

Sin intentar discutir cuántos transistores se necesitan para elementos específicos, las CPU usan más transistores para aumentar las capacidades, que incluyen:

  • Conjuntos de instrucciones más complejos
  • Más caché en chip para que se requieran menos recuperaciones de RAM
  • Más registros
  • Más núcleos de procesador
Daniel Wilson
fuente
1

Además de aumentar las capacidades de almacenamiento sin procesar de RAM, caché, registros y además de agregar más núcleos informáticos y anchos de bus más amplios (32 frente a 64 bits, etc.), es porque la CPU es cada vez más complicada.

Las CPU son unidades informáticas compuestas de otras unidades informáticas. Una instrucción de CPU pasa por varias etapas. En los viejos tiempos, había una etapa, y la señal del reloj sería tan larga como el peor de los casos para que se establecieran todas las puertas lógicas (hechas de transistores). Luego inventamos el revestimiento de la tubería, donde la CPU se dividió en etapas: búsqueda de instrucciones, decodificación, proceso y resultado de escritura. Esa simple CPU de 4 etapas podría funcionar a una velocidad de reloj de 4 veces el reloj original. Cada etapa, está separada de las otras etapas. Esto significa que no solo puede aumentar su velocidad de reloj a 4x (con una ganancia de 4x) sino que ahora puede tener 4 instrucciones en capas (o "canalizadas") en la CPU, lo que resulta en 4 veces el rendimiento. Sin embargo, ahora se crean "peligros" porque una instrucción que viene puede depender del resultado de la instrucción anterior, pero porque ' Si está canalizado, no lo conseguirá cuando entre en la etapa de proceso cuando el otro salga de la etapa de proceso. Por lo tanto, debe agregar circuitos para reenviar este resultado a la instrucción que ingresa a la etapa de proceso. La alternativa es detener la tubería, lo que disminuye el rendimiento.

Cada etapa de la tubería, y particularmente la parte del proceso, se puede subdividir en más y más pasos. Como resultado, terminas creando una gran cantidad de circuitos para manejar todas las interdependencias (peligros) en la tubería.

También se pueden mejorar otros circuitos. Un sumador digital trivial llamado sumador "Ripple carry" es el sumador más fácil, más pequeño pero más lento. El sumador más rápido es un sumador "carry look-ahead" y toma una tremenda cantidad exponencial de circuitos. En mi curso de ingeniería informática, me quedé sin memoria en mi simulador de un sumador de anticipación de 32 bits, así que lo corté por la mitad, 2 sumadores de CLA de 16 bits en una configuración de transferencia de ondulación. (Sumar y restar son muy difíciles para las computadoras, multiplicar fácilmente, la división es muy difícil)

Un efecto secundario de todo esto es que al reducir el tamaño de los transistores y subdividir las etapas, las frecuencias de reloj pueden aumentar. Esto permite que el procesador haga más trabajo para que funcione más caliente. Además, a medida que las frecuencias aumentan, los retrasos en la propagación se vuelven más aparentes (el tiempo que lleva completar una etapa de la tubería y que la señal esté disponible en el otro lado) Debido a la impedancia, la velocidad efectiva de propagación es de aproximadamente 1 pie por nanosegundo (1 Ghz) A medida que aumenta la velocidad del reloj, el diseño del chip se vuelve cada vez más importante, ya que un chip de 4 Ghz tiene un tamaño máximo de 3 pulgadas. Entonces ahora debe comenzar a incluir buses y circuitos adicionales para administrar todos los datos que se mueven alrededor del chip.

También agregamos instrucciones a los chips todo el tiempo. SIMD (Datos múltiples de una sola instrucción), ahorro de energía, etc. todos requieren circuitos.

Finalmente, agregamos más funciones a los chips. En los viejos tiempos, su CPU y su ALU (Unidad de lógica aritmética) estaban separadas. Los combinamos La FPU (unidad de punto flotante) estaba separada, eso también se combinó. Hoy en día, agregamos USB 3.0, Aceleración de video, decodificación MPEG, etc. Muevemos más y más computación del software al hardware.

usuario9170
fuente
1

Majenko tiene una gran respuesta sobre cómo se usan los transistores. Entonces, déjenme pasar de un vector de enfoque diferente y tratar con la eficiencia.

¿Es eficiente usar la menor cantidad de transistores posible al diseñar algo?

Esto básicamente se reduce a la eficiencia de la que estás hablando. Tal vez eres miembro de una religión que sostiene que es necesario usar la menor cantidad posible de transistores; en ese caso, la respuesta está bastante dada. O tal vez eres una empresa que construye un producto. De repente, una simple pregunta sobre la eficiencia se convierte en una pregunta muy complicada sobre la relación costo-beneficio.

Y aquí viene el truco: los transistores en circuitos integrados son extremadamente baratos y cada vez son más baratos con el tiempo (los SSD son un gran ejemplo de cómo se redujo el costo de los transistores). El trabajo, por otro lado, es extremadamente costoso.

En los tiempos en que los CI recién comenzaban, hubo un cierto impulso para mantener la cantidad de componentes requerida lo más baja posible. Esto se debió simplemente a que tuvieron un impacto significativo en el costo de un producto final (de hecho, a menudo eran la mayor parte del costo del producto), y cuando se construye un producto terminado, "en caja", el costo de mano de obra es repartidas en todas las piezas que hagas. Las primeras computadoras basadas en IC (piense en salas de video) se llevaron al menor costo por pieza posible. Sin embargo, los costos fijos (a diferencia de los costos por pieza) se ven fuertemente afectados por la cantidad que puede vender. Si solo fuera a vender un par, probablemente no valía la pena dedicar demasiado tiempo a reducir los costos por pieza. Si intentabas construir un mercado enorme, por otro lado,

Tenga en cuenta una parte importante: solo tiene sentido invertir mucho tiempo en mejorar la "eficiencia" cuando diseña algo para la producción en masa. Esto es básicamente lo que es la "industria": con los artesanos, los costos de mano de obra calificada son a menudo el costo principal del producto terminado; en una fábrica, una mayor parte de los costos proviene de materiales y (relativamente) mano de obra no calificada.

Avancemos rápidamente a la revolución de la PC. Cuando aparecieron las PC de estilo IBM, fueron muy estúpidas. Extremadamente estúpido. Eran computadoras de uso general. Para casi cualquier tarea, puede diseñar un dispositivo que pueda hacerlo mejor, más rápido y más barato. En otras palabras, en la visión de eficiencia simplista, eran altamente ineficientes. Las calculadoras eran mucho más baratas, cabían en su bolsillo y funcionaban durante mucho tiempo con una batería. Las consolas de videojuegos tenían hardware especial para que fueran muy buenos en la creación de juegos. El problema era que no podían hacer nada más. La PC podía hacer todo: tenía una relación precio / rendimiento mucho peor, pero no te engañaron para hacer una calculadora o una consola de juegos 2D. ¿Por qué Wolfenstein y Doom (y en las PC de Apple, Maratón) aparecen en computadoras de uso general y no en consolas de juegos? Debido a que las consolas eran muy buenas para hacer juegos 2D basados ​​en sprites (imagina el JRPG típico, o juegos como Contra), pero cuando querías alejarte del hardware eficiente, ¡descubriste que no hay suficiente potencia de procesamiento para hacer otra cosa!

Entonces, el enfoque aparentemente menos eficiente le brinda algunas opciones muy interesantes:

  • Te da más libertad. Compare las antiguas consolas 2D con las antiguas PC IBM y los antiguos aceleradores de gráficos 3D con las GPU modernas, que poco a poco se están convirtiendo en computadoras de uso general.
  • Permite aumentar la eficiencia de la producción en masa, aunque el producto final (software) es "artesanal" de alguna manera. Por lo tanto, compañías como Intel pueden reducir el costo de la unidad de trabajo de manera mucho más eficiente que todos los desarrolladores individuales en todo el mundo.
  • Brinda más espacio para más abstracciones en el desarrollo, lo que permite una mejor reutilización de soluciones listas, lo que a su vez permite menores costos de desarrollo y prueba, para una mejor salida. Esta es básicamente la razón por la cual cada niño de escuela puede escribir una aplicación basada en GUI completa con acceso a la base de datos y conectividad a Internet y todo lo demás que sería extremadamente difícil de desarrollar si tuviera que comenzar desde cero.
  • En las PC, esto solía significar que sus aplicaciones básicamente se volvieron más rápidas con el tiempo sin su aporte. El tiempo de almuerzo gratuito ya casi ha terminado, ya que cada vez es más difícil mejorar la velocidad bruta de las computadoras, pero dio forma a la mayor parte de la vida útil de la PC.

Todo esto se traduce en un "desperdicio" de transistores, pero no es un desperdicio real, porque los costos totales reales son más bajos de lo que serían si presionara por el simple "tan pocos transistores como sea posible".

Luaan
fuente
1

Otro lado de la historia de "tantos transistores" es que estos transistores no están diseñados individualmente por un humano. Un núcleo de CPU moderno tiene del orden de 0.1 mil millones de transistores, y ningún ser humano diseña cada uno de esos transistores directamente. No sería posible Una vida útil de 75 años es de solo 2.300 millones de segundos.

Por lo tanto, para hacer factibles diseños tan grandes, los humanos están involucrados en la definición de la funcionalidad del dispositivo en un nivel de abstracción mucho más alto que los transistores individuales. La transformación a los transistores individuales se conoce como síntesis de circuito, y se realiza mediante herramientas propietarias muy costosas que colectivamente cuestan del orden de mil millones de dólares desarrollar a lo largo de los años, agregándose entre los principales fabricantes y fundiciones de CPU.

Las herramientas de síntesis de circuitos no generan diseños con el menor número de transistores posible. Esto se hace por una multitud de razones.

Primero, cubramos el caso más básico: cualquier circuito complejo puede ser simulado por una CPU mucho más simple, quizás en serie, con suficiente memoria. Ciertamente puede simular un chip i7, con una precisión perfecta, si solo conecta suficiente RAM en serie a un Arduino. Tal solución tendrá mucho menos transistores que la CPU real, y funcionará abismalmente lentamente, con una velocidad de reloj efectiva de 1kHz o menos. Claramente, no pretendemos que la reducción del número de transistores llegue tan lejos .

Por lo tanto, debemos limitarnos a una cierta clase de transformaciones de diseño a transistores: aquellas que mantienen la capacidad paralela incorporada en el diseño original.

Incluso entonces, la optimización para un número mínimo de transistores probablemente producirá diseños que no se pueden fabricar utilizando ningún proceso de semiconductores existente. ¿Por qué? Debido a que los chips que realmente puedes hacer son estructuras 2D, y requieren un poco de redundancia de circuito simplemente para que puedas interconectar esos transistores sin requerir un kilogramo de metal para hacerlo. La entrada y salida de los transistores, y las puertas resultantes, sí importan.

Finalmente, las herramientas no son teóricamente perfectas: generalmente requeriría demasiado tiempo de CPU y memoria para generar soluciones que sean globalmente mínimas en términos de números de transistores, dada la restricción de un chip fabricable.

Reinstalar a Mónica
fuente
0

Creo que lo que el OP necesita saber es que un "interruptor simple" a menudo necesita varios transistores. ¿Por qué? Bueno, por muchas razones. A veces se necesitan transistores adicionales para que el uso de energía sea bajo para el estado 'encendido' o 'apagado'. A veces se necesitan transistores para lidiar con las incertidumbres en las entradas de voltaje o las especificaciones de los componentes. Muchas razones. Pero aprecio el punto. ¡Mire el diagrama del circuito para un OP-AMP y verá unas pocas docenas de transistores! Pero no estarían allí si no sirvieran para algo en el circuito.

Jiminion
fuente
0

Básicamente, todo lo que la computadora entiende es 0s y 1s ... que es decidido por estos interruptores. Sí, las funciones de los transistores son más que las de los interruptores. Entonces, si un conmutador puede decidir si la salida tiene que ser un 0 o un 1 (suponiendo que como una sola operación bi), mayor será el número de bits. cuantos más transistores ... así que no es de extrañar por qué tenemos que integrar millones de transistores en un solo microprocesador ... :)


fuente
0

En la era de la tecnología, necesitamos dispositivos inteligentes (pequeños, rápidos y eficientes). Estos dispositivos están formados por circuitos integrados (IC) que contienen un no. de transistores. Necesitamos más y más transistores para hacer que IC sea más inteligente y más rápido porque en electrónica, cada circuito en un IC está hecho de un sumador, substractor, multiplicador, divisor, puertas lógicas, registros, multiplexores, flip flops, contadores, cambiadores, memorias y microprocesadores, etc. para implementar cualquier lógica en los dispositivos y están compuestos solo por transistores (MOSFET). Con la ayuda de transistores, podemos implementar cualquier lógica. Entonces necesitamos más y más transistores .....

enter image description here

Deepak Berwal
fuente