¿Por qué necesitamos tantos transistores?

33

Los transistores sirven para 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 empacados, con la cantidad de transistores que están 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é necesitaríamos una cantidad tan absurdamente grande de ellos en nuestros modernos dispositivos electrónicos? ¿No podemos hacer que las cosas sean más eficientes, de modo que usamos menos transistores de los que utilizamos actualmente?

    
pregunta Kenneth .J

12 respuestas

45

Los transistores son interruptores, sí, pero los interruptores son más que simples 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 fundamentales de la lógica, junto con NOR):

simular este circuito : esquema creado usando CircuitLab

A medida que la tecnología pasó de TTL a CMOS (que ahora es el estándar de facto), hubo básicamente una duplicación instantánea de transistores. Por ejemplo, la puerta NAND pasó de 2 transistores a 4:

simular este circuito

Un pestillo (como un SR) se puede hacer usando 2 puertas CMOS NAND, por lo que 8 transistores. Por lo tanto, se podría hacer un registro de 32 bits utilizando 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 también, por lo que el número de transistores crece rápidamente.

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

Su CPU promedio en estos días es considerablemente más complejo que 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 tomar muchos segundos (o incluso minutos) de cómputo en un antiguo 8-amargo, y todo lo que se hace, en última instancia, al tener más transistores.

    
respondido por el Majenko
16

Verifiqué al proveedor local de varios dispositivos de semiconductores y el chip SRAM más grande que tenían era de 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, eso es 32 millones de transistores como mínimo absoluto.

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

EDITAR - una celda de memoria SRAM de acuerdo con mi Google se ve así: -

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

    
respondido por el Andy aka
7

Creo que el OP puede confundirse con los 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 como una radio de transistores podría estar (en su mayoría) en un solo chip, pero no puede hacer uso de todos los transistores que . Los dispositivos de computación, por otro lado, tienen un apetito insaciable por los transistores para funciones adicionales y anchos de datos más amplios.

    
respondido por el Phil Perry
4

Como se indicó anteriormente, SRAM requiere 6 transistores por bit. A medida que ampliamos nuestros escondites (para propósitos de eficiencia), requerimos más y más transistores. Al observar una oblea de procesador , puede ver que el caché es más grande que un solo núcleo de un procesador, y Si observa más de cerca los núcleos, verá partes bien organizadas en él, que también son caché (probablemente datos y datos de instrucciones L1). Con 6MB 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 de dhrystone). Esto significa una cosa: los procesadores de última generación hacen una gran cantidad de computación paralela. Hacer más operaciones al mismo tiempo requiere tener más unidades para hacerlo, y una lógica más inteligente para programarlo. Una lógica más inteligente requiere ecuaciones lógicas mucho más complejas y mucho más transistores para implementarla.

    
respondido por el Jacen
2

Alejándose un poco de los detalles:

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

Cada uno de esos niveles usa muchas partes del nivel de complejidad anterior, todos los cuales se basan en muchas y muchas de las puertas lógicas básicas.

Luego agregas 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 (varias CPU en un chip).

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

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

    
respondido por el Duncan C
1

Sin intentar discutir cuántos transistores se necesitan para elementos específicos, la CPU usa más transistores para mayores capacidades, entre ellas:

  • Conjuntos de instrucciones más complejos
  • Más caché en chip para que se requieran menos búsquedas de RAM
  • Más registros
  • Más núcleos de procesador
respondido por el Daniel Wilson
1

Además de aumentar las capacidades de almacenamiento sin formato de RAM, caché, registros y 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 en el peor de los casos para que todas las puertas lógicas (hechas de transistores) se asienten. Luego inventamos el revestimiento de tuberías, donde la CPU se dividió en etapas: instrucción de obtención, decodificación, proceso y escritura de resultados. Esa simple CPU de 4 etapas podría entonces 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 la velocidad de su reloj a 4x (a 4x de ganancia) sino que ahora puede tener 4 instrucciones en capas (o "segmentadas") en la CPU, lo que da como resultado 4x el rendimiento. Sin embargo, ahora se crean "peligros" porque una instrucción que llega puede depender del resultado de la instrucción anterior, pero debido a que es canalizada, no la recibirá cuando ingrese en la etapa de proceso, ya que la otra parte sale de la etapa de proceso. Por lo tanto, debe agregar circuitos para enviar 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 canalización, y en particular 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 un sumador "ripple carry" es el más fácil, el más pequeño, pero el más lento. El sumador más rápido es un sumador de "avance anticipado" y tiene una tremenda cantidad exponencial de circuitos. En mi curso de ingeniería informática, me quedé sin memoria en mi simulador de un visor de avance anticipado de 32 bits, por lo que lo corté por la mitad, 2 sumadores de CLA de 16 bits en una configuración de arrastre continuo. (Sumar y restar es muy difícil para las computadoras, multiplicarse 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 se ejecute más caliente. Además, a medida que las frecuencias aumentan, los retrasos de propagación se vuelven más evidentes (el tiempo que tarda una etapa de tubería en completarse y 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 de su 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. Por lo tanto, 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 ellos requieren circuitos.

Finalmente, agregamos más características a los chips. En los viejos tiempos, su CPU y su ALU (unidad de lógica aritmética) estaban separados. Los combinamos. El FPU (unidad de punto flotante) estaba separado, que también se combinó. Hoy en día, agregamos USB 3.0, aceleración de video, decodificación de MPEG, etc ... Movemos más y más computación del software al hardware.

    
respondido por el user9170
1

Majenko tiene una gran respuesta sobre cómo se usan los transistores. Así que permítanme en cambio ir desde un vector de enfoque diferente y lidiar con la eficiencia.

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

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

Y aquí viene el truco: los transistores en los 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). La mano de obra, por otro lado, es extremadamente costosa.

En los momentos en que los IC solo estaban empezando, hubo un cierto impulso para mantener la cantidad de componentes necesarios 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 videojuegos) fueron conducidas a un costo por pieza lo más pequeño 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 iba a vender un par, probablemente no valía la pena gastar demasiado tiempo en reducir los costos por pieza. Por otro lado, si estaba tratando de construir un mercado enorme, los costos por pieza lo más bajos posible tuvieron un beneficio.

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 serie. Esto es básicamente lo que es la "industria": con los artesanos, los costos de mano de obra calificada suelen ser el costo principal del producto terminado. En una fábrica, la mayor parte de los costos provienen de los materiales y la mano de obra (relativamente) no calificada.

Avancemos rápidamente a la revolución de la PC. Cuando surgieron las PC estilo IBM, eran muy estúpidas. Extremadamente estúpido Eran computadoras de propósito general. Para casi cualquier tarea, puedes diseñar un dispositivo que pueda hacerlo mejor, más rápido y más barato. En otras palabras, en la visión simplista de la eficiencia, 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 un hardware especial que las hacía muy buenas para crear juegos. El problema era que no podían hacer nada más. La PC podía hacer de todo: tenía una relación precio / salida mucho peor, pero no se te impuso hacer una calculadora o una consola de juegos de sprites 2D. ¿Por qué aparecieron Wolfenstein y Doom (y en Apple PC, Marathon) en computadoras de propósito general y no en consolas de juegos? Debido a que las consolas eran muy buenas para hacer juegos en 2D basados en sprites (imagine el típico JRPG, o juegos como Contra), pero cuando quería alejarse del hardware eficiente, ¡descubrió que no hay suficiente poder de procesamiento para hacer otra cosa!

Por lo tanto, el enfoque aparentemente menos eficiente le ofrece algunas opciones muy interesantes:

  • Te da más libertad. Compare las consolas 2D antiguas con las PC de IBM antiguas y los aceleradores de gráficos 3D antiguos para las GPU modernas, que poco a poco se están convirtiendo en computadoras de uso general.
  • Permite aumentos en la eficiencia de la producción en masa a pesar de que los productos finales (software) son "artesanales" de alguna manera. Por lo tanto, empresas como Intel pueden reducir el costo de la unidad de trabajo de manera mucho más eficiente que todos los desarrolladores individuales de 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 pruebas, para un mejor resultado. Esta es básicamente la razón por la que todos los escolares pueden escribir una aplicación basada en GUI completa con acceso a base de datos y conectividad a Internet y todas las otras cosas que serían extremadamente difíciles de desarrollar si tuvieras que empezar siempre desde cero.
  • En las PC, esto solía significar que sus aplicaciones básicamente se aceleraban con el tiempo sin su aportación. La hora del almuerzo libre 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 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 "menos transistores posible" ".

    
respondido por el Luaan
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 aproximadamente 0,1 billones de transistores, y ningún humano diseña directamente cada uno de esos transistores. 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 estos enormes diseños, los seres humanos participan en la definición de la funcionalidad del dispositivo a 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 circuitos, y se realiza mediante herramientas propietarias muy costosas que, en conjunto, cuestan alrededor de mil millones de dólares para desarrollarse a lo largo de los años, agregándose entre los principales fabricantes de CPU y fundiciones.

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, veamos 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, puedes simular un chip i7, con perfecta precisión, si solo conectas suficiente RAM serie a un Arduino. Una solución de este tipo tendrá muchos menos transistores que la CPU real y se ejecutará de manera muy lenta, con una frecuencia de reloj efectiva de 1 kHz o menos. Claramente, no pretendemos que la reducción del número de transistores llegue hasta 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 semiconductor existente. ¿Por qué? Debido a que los chips que realmente puede hacer son estructuras 2D, y requieren un poco de redundancia de circuitos simplemente para poder interconectar esos transistores sin requerir un kilogramo de metal para hacerlo. La entrada y salida de los transistores, y las puertas resultantes, son importantes.

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

    
respondido por el Kuba Ober
0

Creo que lo que el OP debe 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, ya sea para el estado "encendido" o "apagado". A veces se necesitan transistores para lidiar con las incertidumbres en las entradas de voltaje o especificaciones de componentes. Muchas razones. Pero aprecio el punto. ¡Mire el diagrama del circuito de un OP-AMP y verá unas docenas de transistores! Pero no estarían allí si no tuvieran algún propósito para el circuito.

    
respondido por el Jiminion
0

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

    
respondido por el user46627
0

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

    
respondido por el Deepak Berwal

Lea otras preguntas en las etiquetas