¿Cómo funciona una CPU?

El trabajo de la CPU en los principios de la lógica digital que se puede implementar en una oblea de silicio mediante la construcción de una gran cantidad de interruptores binarios (transistores o compuertas). Estas puertas se pueden combinar en circuitos que tienen funciones específicas; por ejemplo, un circuito para sumar dos números e incluir el transporte de la operación anterior se puede implementar de esta manera:

Circuitos simples como este se pueden combinar con otros para realizar la multiplicación (que es fundamentalmente un montón de operaciones de suma). Otro elemento clave de una CPU implica almacenar información. Esto se hace usando memorias o registros incrustados que generalmente son direccionables por fila y columna:
Al proporcionar una dirección a esta memoria, se puede recuperar el valor almacenado en esa ubicación. Nuevamente, estos están construidos con varios transistores que pueden activarse o desactivarse para denotar un valor de 1 o 0.

Sincronizar todo esto es un sistema que se llama reloj. La sincronización proporciona un mecanismo por el cual las operaciones en todo el chip se pueden realizar al mismo tiempo, de modo que cuando compara los resultados de dos circuitos que están trabajando en una operación similar (agregando dos números, por ejemplo), los resultados son de esa operación, en lugar de que un circuito se adelante al otro y no se compare con el valor correcto.

Los relojes también se utilizan para controlar la entrada y salida de la CPU para que pueda comunicarse con dispositivos externos. Están construidos con dispositivos analógicos y digitales. En el núcleo de la mayoría de los relojes hay un circuito de bucle de fase bloqueado (PLL) y un medio para distribuir los pulsos de reloj a través del chip, a veces usando repetidores o divisores para sintonizar los relojes de manera adecuada para tener en cuenta el tiempo que tardan las señales en viajar a través del circuito. chip.

Alrededor del exterior de una CPU, generalmente podemos encontrar el anillo de E / S que recibe señales analógicas del mundo exterior y controla la comunicación con otros dispositivos. Ejemplos de esto serían interfaces de memoria o IO de propósito general.

Juntos, estos elementos permiten que la CPU reciba instrucciones del software, lea valores, realice operaciones y envíe resultados al resto del sistema. Para facilitar esto, también hay un microcódigo dentro de la CPU que controla cómo se comporta y funciona. Este microcódigo permite la implementación suave de instrucciones, abstrayendo las instrucciones de la necesidad de especificar las operaciones de circuito específicas para realizar la instrucción. Este mismo proceso de abstracción continúa una y otra vez a través del sistema operativo y el software para que la persona que usa una computadora pueda hacer clic en una ubicación en una pantalla y recuperar información de la mitad del mundo sin saber nada sobre qué es un transistor.

Asombroso.

(Nota: esto es muy simplificado y describe solo los principios generales)

Un procesador de computadora en 10 sencillos pasos

Paso 1:
Te deja imaginar un cable con un botón en el medio. Cuando presiona el botón, la electricidad pasa, cuando la suelta, la electricidad se corta y ya no puede continuar. Este botón se llama transistor y usa otro cable de electricidad en lugar de su dedo. Esta es la única herramienta que tenemos.

Paso 2:
Realiza tus 3 circuitos básicos.
Dos botones en un cable – Y puerta – la electricidad pasa solo cuando se presionan ambos botones.
Un botón que se presiona a menos que lo tire, NO puertas. La electricidad se detiene cuando realiza una acción; invierte su acción / señal.
Dos cables conectados en un extremo para presionar cualquiera de los botones y la electricidad pasa. – O puerta.
Tutorial de Logic AND Gate con la tabla de verdad Logic AND Gate

Tutorial Logic OR Gate con tabla de verdad Logic OR Gate

Tutorial Logic NOT Gate con tabla de verdad Logic NOT Gate

Paso 3:
Ahora necesitamos saber al menos un poco sobre las matemáticas de base 2. Mira la tabla aquí:
Introducción / Números binarios
Lo que necesitamos saber por ahora es cómo podemos codificar el número 0-3.
Usaremos dos cables. cero significa “sin corriente”, uno significa “tiene corriente”
00 – significa cero
01 – significa uno
10 – significa dos
11 – significa tres

Paso 4:
Tengamos 4 cables y permítanme pensar en un número 0-3 y el dispositivo seleccionará el cable que quiero configurando mis dos cables al número necesario y permite que pase solo la señal seleccionada. Se llama multiplexor.
Multiplexor (MUX) y Tutorial de multiplexación
Hay un dispositivo que funciona de la misma manera, pero en la dirección opuesta es el Tutorial de decodificador digital de demultiplexor (DEMUX). Hay uno más llamado decodificador, pero seamos simples.
Entonces ahora podemos cambiar las señales fácilmente.

Paso 5:
Las computadoras deben saber cómo sumar números. Sabemos agregar con carry desde la escuela. La computadora debe saber al menos lo mismo, pero para los números binarios.
Humanos: suma 4
Computadoras: 0 + 0 = 0, 1 + 0 = 1, 1 + 1 = 0 y recuerda 1 (carry)

Se llama sumador. Este es un medio sumador, pero podemos conectarlos juntos para poder agregar un número mayor que 1. Está hecho de una puerta AND y una puerta X OR.
La resta funciona de manera muy similar. Otras operaciones se realizan a partir de estos simples. No es tan importante

Paso 6:
Una computadora hace una secuencia de comandos. Necesitamos un par de cosas para eso. Primero aprenderemos cómo recordar un valor.

Se llama flip-flop y lo que hace es que puede empujar cero o uno adentro (configurar el circuito a ese estado) y mantenerlo todo el tiempo que lo necesite. Entonces puedes leerlo para usarlo en el futuro.

Paso 7:
¿Has visto la señal del reloj en la imagen de arriba? Todas las especificaciones técnicas de los teléfonos móviles dicen 1.3 gigahercios o algo similar. Se refiere a esta señal de reloj. Se parece un poco al diente de una rueda dentada y funciona de manera similar. El reloj de 1 GHz genera mil millones de tics por segundo y cada tic es como un engranaje que impulsa el cálculo hacia adelante.

Paso 8:
Cuando ponemos varias chanclas una al lado de la otra, podemos recordar números más grandes. Así es como funciona la memoria y los registros. Podemos recuperar la información de la memoria con las herramientas que tenemos. Cuando quiera el contenido de la ubicación de memoria 5, enviaré la señal “5” y con el decodificador se decodificará solo para “leer” la señal para la ubicación 5. Solo esta se “abrirá” y recibiré el contenido a cualquier otro lugar que necesite. Entonces reutilizamos los cables y las señales se abren y cierran para poder cambiar las rutas entre las partes de la computadora.

Paso 9:
Ahora la computadora parece una cosa bastante tonta, ¿cómo podemos controlar el comportamiento? Nos falta un solo dispositivo, que está hecho de los componentes que conocemos y se llama “máquina de estados finitos”. Lo sabe, por ejemplo, desde la máquina expendedora: observe la máquina de estado finito simple.
Comienza con “hola, ¿quieres una bebida?”, Luego cambia a “contar dinero” que “selecciona la bebida” y luego “prepara la bebida y adiós”. Entonces comienza desde el principio.
El dispositivo se inicia en un estado. Siempre lee un número y, en función del número, cambia su estado a otro estado. La máquina de estados finitos que necesitamos cambia entre algunos estados simples “leer instrucciones, decodificar instrucciones, calcular, almacenar resultados”.

Paso 10:
Un ordenador. Veamos una implementación simple .
Lo encendemos. Usamos una ubicación de memoria como contador de programa. Recuerda “donde estamos”. Comienza desde cero. La máquina de estado finito está en estado de lectura, por lo que abrimos la ubicación de memoria cero, leemos un número y lo decodificamos como una instrucción de suma. Por lo tanto, la máquina de estados abre la unidad aritmética y luego vuelve al estado de lectura, lee los operandos y los pasa también a la unidad aritmética. Luego cambia al cálculo lo que básicamente significa que abre la “puerta” desde el otro lado de la unidad aritmética y permite que el resultado regrese a la memoria a una ubicación especificada en la instrucción (digamos que es la ubicación 100). Cuando las máquinas de estado vuelven al punto de partida, aumenta el contador del programa a 1, por lo que buscamos en la ubicación de memoria 1 la siguiente instrucción. Y así.

Las instrucciones de la computadora son muy simples como “leer un número”, “agregar dos números”, “verificar si el número es mayor que 5”, “almacenar número”. Para programar computadoras usamos los llamados “lenguajes de alto nivel”. Podemos escribir un comando como “voltear la imagen al revés”. Este comando único se divide a menudo en cientos de instrucciones simples de la computadora que se ejecutan una por una muy rápidamente. Como se mencionó anteriormente, hoy en día hacer alrededor de mil millones de instrucciones por segundo no es nada especial para un teléfono móvil. Pero el procesador no contiene otras partes que las descritas anteriormente (además de algunos detalles técnicos). Lo cual es increible.

Junto con las respuestas más técnicas, un atajo para comprender cómo funcionan las CPU es comprender que todo es matemática.

La versión generalizada de cómo funcionan las CPU es que utilizan diseños complicados y técnicamente sofisticados para sumar y restar números.

Alan Turing

Un hombre llamado Alan Turing descubrió que el mundo en el que vivimos puede ser descrito por las matemáticas. Esta fue la idea clave que creó el uso exponencial de por qué las computadoras son tan omnipresentes en la actualidad. Como era científico, pudo describirlo de una manera que estaba disponible para otros científicos y los documentos que escribió ahora se consideran el nacimiento de la forma en que se usan las computadoras hoy en día. Dado que las matemáticas pueden describir el mundo, se abrió la puerta a todas las cosas que una computadora podría hacer.

Ya no es solo una forma de reducir el tiempo que un contador necesitaría para calcular los números, era una forma de explorar … lo que sea.

Una CPU, una unidad central de procesamiento, es lo que ha salido de todas las otras publicaciones sobre cómo funciona todo. Ingenieria. Obtenga un grupo de transistores para formar grupos de circuitos lógicos, hágalos lo más pequeños posible y descubra formas de hacerlos eficientes también.

Una CPU (Unidad Central de Procesamiento) es una calculadora de micro tamaño extremadamente bien diseñada que hace matemática …………………………… .. realmente rápido.

Observamos nuestro mundo en grupos de diez: 1-2-3-4-5-6-7-8-9-0, y una computadora solo entiende cosas en grupos de dos, binarios, las traducciones siempre se hacen para hacer lo que una computadora entiende y nosotros podemos entenderlo.

El álgebra booleana es el intermediario.

La computadora hace sus cosas increíbles por 1 y 0. Binario. Dos posiciones que determinan si algo suma 1 o 0 o ……… traza este lugar en el entorno que se calculó previamente, elimina las cosas que el espectador no puede ver, elimina estas cosas invisibles, actualiza la pantalla, recalcula todo entorno, coloque correctamente los colores correctos, ajuste el movimiento, ¿son correctos mis cálculos? – vuelva a probar 1000 veces por segundo, dígale a la tarjeta gráfica que necesito más información, el cliente quiere navegar por la web, “abrir” el navegador y así sucesivamente … y esto es lo que se le pediría a una computadora en casa … … Mientras juegas un JUEGO . O agrega 1 + 1.

Enorme nivel de dificultad para nosotros, un bache diferente a una CPU.

La CPU “es” la computadora.

He usado la palabra “Computadora” en lugar de “CPU” pero, sí, la CPU es una computadora microsized, un prodigio matemático basado en silicio matemático.

Como una instancia:

Cuando escribe cualquier letra en su teclado, se envía una señal a la CPU que dice “se presionó la tecla” A ”

ASCII (American Standard Code for Information Interchange) es el estándar acordado que le dice a la computadora que cuando se presiona una entrada de un teclado, descubra lo que significa. Cuando la CPU ve la letra “A”, ve “01000001”. Solo vemos la letra “A”. La CPU está constantemente decidiendo dónde está el aluvión constante de números binarios, que están solicitando su tiempo, su significado y hacia dónde van: está haciendo su proceso central de procesamiento.

Entonces. ¿Qué hace una CPU? Gestiona todas las entradas que están sucediendo constantemente para que todo funcione. Lo que está haciendo su teclado con la información que viene de un programa que ahora sabe que se necesita una actualización para protegerse del daño.

Los resultados pueden ser un juego, una hoja de cálculo, un video que se está viendo, una canción que se está escuchando o la síntesis resultante de un año de lo que sucedería si la gravedad y el espacio alrededor de los agujeros de gusano se combinaran en un agujero negro.

La matemática es el factor (sin juego de palabras). Una CPU es la micromáquina que se ha inventado para hacer las matemáticas que describen ese mundo.

…… .la próxima vez que vea la última película de Pixar, sepa que cada fotograma, a +24 veces por segundo, necesita algunos días para completarse. La dificultad de simular el mundo que nos rodea. Todavía es difícil describir exactamente lo que damos por sentado para que se entienda en lenguaje de CPU. Pero es la CPU que ha sido diseñada para calcular los números necesarios para darnos la solución que queremos.

¿Adivina qué? Cuando le pide a su computadora que multiplique 345 x 678, agrega, en nano segundos, 345, 678 veces. Eso es multiplicación de CPU. Más ingeniería hace que la suma y la resta puedan hacer álgebra y cálculo.

¿UPC?

Fantásticamente, super calculadora de microingeniería. Una CPU es una máquina sumadora de alta tecnología. Ha encontrado su camino en prácticamente todo lo que hacemos porque una CPU es la máquina que se hizo para hacer las matemáticas que puede hacer las cosas que las matemáticas dicen que es capaz de hacer.

Los procesadores se fabrican solo después del descubrimiento de materiales semiconductores. Principalmente debido al silicio (descubierto por el barón Jons Jackob Berzelius en 1823, es decir, uno después de la primera computadora mecánica hecha por charles babbage), ya que es abundante en la naturaleza.

conceptos básicos de semiconductores: –

http: //www.electronics-tutorials … (no es necesario leer si lo sabe)

Nikola tesla patenta circuitos lógicos eléctricos llamados “compuertas” o “interruptores” en 1903.

referencia: https://en.wikipedia.org/wiki/Ta …, http://teleautomaton.com/post/13

John Bardeen, Walter Brattain y William Shockley patentaron el primer transistor en 1948 y obtuvieron el Premio Nobel de física por su trabajo en el transistor en 1956.

La primera computadora de transistores: –

La TX-O (computadora experimental transistorizada) es la primera computadora transistorizada que se demostró en el Instituto de Tecnología de Massachusetts en 1956.
HISTORIA DEL PROCESADOR INFORMÁTICO: –
Historial del procesador de la computadora
PRIMERA HISTORIA DE LA COMPUTADORA: –
Procesador de la computadora

Después de la invención de IC, el trabajo del procesador de la computadora, es decir, tomar datos de RAM y procesarlos y aumentar el resultado (paralelismo del modelo von Neumann )
Los dos tipos de datos de ram

  • Hay dos tipos de datos que la CPU maneja en un momento dado. Uno es la información que necesita ser procesada. El otro es el código del programa que está conectado a los datos. El código de programación es una lista de instrucciones sobre cómo deben manejarse y procesarse los datos en un lenguaje que la CPU pueda interpretar. El código de programación también contiene la ruta del bus del sistema para los datos. Dado que otros componentes de la computadora pueden no entender el código de programación, es el trabajo de la CPU interpretar las instrucciones para otros componentes del sistema. La CPU continúa manejando ambos datos hasta que ya no son necesarios, cuando se cierra el programa o ya no se accede al hardware asociado con la tarea.

funcionamiento del procesador de la computadora en detalle: –

Todo el uso de la CPU von Neumann para la operación de recuperación, decodificación, ejecución y escritura.
El primer paso, buscar , implica recuperar una instrucción (que está representada por un número o secuencia de números) de la memoria del programa. La ubicación en la memoria del programa está determinada por un contador de programa (PC), que almacena un número que identifica la posición actual en el programa. En otras palabras, el contador del programa realiza un seguimiento del lugar de la CPU en el programa actual. Después de obtener una instrucción, la PC se incrementa en la longitud de la palabra de instrucción en términos de unidades de memoria. A menudo, la instrucción que debe buscarse debe recuperarse de una memoria relativamente lenta, lo que hace que la CPU se bloquee mientras espera que se devuelva la instrucción. Este problema se aborda en gran medida en los procesadores modernos mediante cachés y arquitecturas de canalización.
La instrucción que la CPU obtiene de la memoria se usa para determinar qué debe hacer la CPU. En el paso de decodificación , la instrucción se divide en partes que tienen importancia para otras partes de la CPU. La manera en que se interpreta el valor de la instrucción numérica está definida por la arquitectura del conjunto de instrucciones ( ISA ) de la CPU. A menudo, un grupo de números en la instrucción, llamado código de operación, indica qué operación realizar. Las partes restantes del número generalmente proporcionan información requerida para esa instrucción, como operandos para una operación de suma. Dichos operandos pueden darse como un valor constante (llamado valor inmediato), o como un lugar para ubicar un valor: un registro o una dirección de memoria, según lo determinado por algún modo de direccionamiento. En diseños anteriores, las partes de la CPU responsables de la decodificación de instrucciones eran dispositivos de hardware incambiables. Sin embargo, en las CPU e ISA más abstractas y complicadas, a menudo se utiliza un microprograma para ayudar a traducir las instrucciones en varias señales de configuración para la CPU. Este microprograma a veces es regrabable para que pueda modificarse para cambiar la forma en que la CPU decodifica las instrucciones incluso después de haber sido fabricado.
Después de los pasos de recuperación y decodificación, se realiza el paso de ejecución. Durante este paso, varias partes de la CPU están conectadas para que puedan realizar la operación deseada. Si, por ejemplo, se solicitó una operación de adición, se conectará una unidad lógica aritmética a un conjunto de entradas y un conjunto de salidas. Las entradas proporcionan los números que se agregarán, y las salidas contendrán la suma final. La ALU contiene los circuitos para realizar operaciones aritméticas y lógicas simples en las entradas (como las operaciones de suma y de bits). Si la operación de suma produce un resultado demasiado grande para que la CPU lo maneje, también se puede establecer un indicador de desbordamiento aritmético en un registro de indicadores.
El paso final, la reescritura, simplemente “reescribe” los resultados del paso de ejecución en alguna forma de memoria. Muy a menudo, los resultados se escriben en algún registro interno de la CPU para un acceso rápido mediante instrucciones posteriores. En otros casos, los resultados pueden escribirse en una memoria principal más lenta, pero más barata y más grande. Algunos tipos de instrucciones manipulan el contador del programa en lugar de producir datos de resultados directamente. Generalmente se denominan “saltos” y facilitan comportamientos como bucles, ejecución condicional de programas (mediante el uso de un salto condicional) y funciones en programas. Muchas instrucciones también cambiarán el estado de los dígitos en un registro de “banderas”. Estas banderas se pueden usar para influir en el comportamiento de un programa, ya que a menudo indican el resultado de varias operaciones. Por ejemplo, un tipo de instrucción “comparar” considera dos valores y establece un número en el registro de banderas de acuerdo con cuál es mayor. Esta bandera podría ser utilizada por una instrucción de salto posterior para determinar el flujo del programa.
Después de la ejecución de la instrucción y la reescritura de los datos resultantes, todo el proceso se repite, y el siguiente ciclo de instrucción normalmente recupera la instrucción de la siguiente secuencia debido al valor incrementado en el contador del programa. Si la instrucción completada fue un salto, el contador del programa se modificará para contener la dirección de la instrucción a la que se saltó, y la ejecución del programa continúa normalmente. En CPU más complejas que la descrita aquí, se pueden obtener, decodificar y ejecutar varias instrucciones simultáneamente. Esta sección describe lo que generalmente se conoce como la “tubería RISC clásica”, que de hecho es bastante común entre las CPU simples utilizadas en muchos dispositivos electrónicos (a menudo llamados microcontroladores)
ref: -¿Cómo funciona la CPU?

también puedes leer: –

https://www.quora.com/How-does-a

https://www.quora.com/How-does-a-computer-chip-work

saber qué es un procesador: –

https://www.quora.com/What-is-a-

Me gusta mucho la respuesta de Jonathan Cole. No estoy seguro de poder hacerlo mejor.

En su ser más central, un procesador de computadora es una unidad de lógica aritmética – un ‘interruptor’ que compara dos señales eléctricas – hace 1 = 0, hace 0 = 1, hace 1 = 1, hace 0 = 0. Dichas señales se envían a través de hojas de silicio cuyos “agujeros” microscópicos e irregularidades crean túneles y formaciones de queso suizo que permiten que los electrones fluyan entre los lugares (agujeros) (túneles).

Durante el curso de este movimiento de electrones, las señales eléctricas (voltaje) se enrutan a través de una serie de conductos, tal vez un poco como el agua que fluye a través de las tuberías. El agua generalmente fluye en una dirección (cuesta abajo), aquí un segundo y luego se fue / se secó / olvidó el siguiente; pero, con una construcción inteligente de tubos que circulan sobre sí mismos, el agua de electrones a veces puede “voltear una bandera” a medida que pasa a través de la superposición, de modo que una señal (1 o 0) puede almacenarse permanentemente en esa ubicación . Piense en muchos cientos, miles y millones de estos electrones que pasan a través de innumerables tuberías de agua, ondeando banderas a medida que avanzan, y ha recorrido gran parte del camino para comprender cómo funcionan los registros y las puertas lógicas y las matemáticas binarias.

Entonces, ahora sabemos cómo los datos (unos y ceros) se transmiten como señales a través de trozos de silicio, y cómo los datos (unos y ceros, “bits”) se almacenan (como banderas invertidas) en tuberías de electrones-agua. Para que el procesador de la computadora haga algo útil con estas estructuras simples 1/0, necesitaremos combinar muchas (* muchas *) de ellas.

Si una computadora típica hoy en día tiene 16 gigabytes de memoria (16 GB = 128,000,000,000 de esos bits de un cero), hay asombrosamente muchas ubicaciones para vivir todos esos bits de un cero. La computadora debe comenzar a dar a todas las ubicaciones diferentes sus propias direcciones únicas (direcciones de memoria), como 0x00000000001, 0x0000000002, etc. De manera similar, como no llegaremos a ningún lado si todo lo que podemos decirle a la computadora es “diríjase a la dirección 0x000000001, mueva uno o cero allí”, los diseñadores de hardware incorporan un conjunto muy simple de instrucciones (lenguaje de máquina, lenguaje ensamblador) en el placa base de silicio y procesador en sí.

Entonces, en un seudo-inglés muy simplista, el procesador de la computadora realiza pasos como estos:

  • IR BUSCAR LA (S) SEÑAL (S) BIT EN LA DIRECCIÓN DE MEMORIA 0x009
  • ENTONCES VAYA A BUSCAR LA (S) SEÑAL (S) BIT EN LA DIRECCIÓN DE MEMORIA 0x0011
  • CUANDO EL VALOR ES MÁS GRANDE, BORRE EL VALOR (HAGA CERO)
  • TOMA EL VALOR MÁS PEQUEÑO Y MULTIPLICA SU VALOR POR 16
  • TOME ESTE VALOR-VECES-16 NÚMERO, COPIARLO A LA DIRECCIÓN 0x0011
  • SI ES DEMASIADO GRANDE EN EL ADDR 0x0011, USE ESPACIO ADICIONAL EN 0x0012
  • OK, HECHO CON ESO, AHORA PASA A LA DIRECCIÓN DE MEMORIA 0x346
  • … HAGA OTROS PASOS COMO SE REFIERE EN ESA NUEVA UBICACIÓN …

Tan atroz como se ve (y es aún peor en ensamblador / lenguaje de máquina), los programadores de computadoras están haciendo algo como esto cuando compilan y = 16 * max (x, y) en C ++ o Java o el lenguaje que prefiera.

El concepto que (a menudo) es difícil de comprender es cómo los miles de millones de unos y ceros se unen para crear direcciones de memoria, operaciones aritméticas y conjuntos de instrucciones. Mi divagación anterior puede no ayudar mucho, pero al menos le da un sabor representativo.

Básicamente, un procesador es una pieza de hardware que realiza algunos cálculos utilizando la entrada recibida y produce salidas. En el nivel básico, están formados por transistores que componen puertas que juntas forman sumadores y muchas otras estructuras para hacer cálculos.

Un transistor

Símbolos para transistores

Puertas

Las compuertas AND están hechas de transistores en serie, mientras que una compuerta o tiene transistores en paralelo y la compuerta NOT está diseñada utilizando resistencias para invertir la entrada. Cuando recibe un subidón digital produce un bajo digital y viceversa.

Hacer un sumador necesita que aprendas álgebra booleana y una vez que lo aprendes puedes comenzar a hacer todo esto. De hecho, no es tan difícil, solo consume mucho tiempo.

Ahora el procesador está hecho de pequeños circuitos como compuertas OR Y compuertas y NO compuertas, estas compuertas se combinan para crear circuitos complejos que realizan estas funciones.

Y puerta utilizando transistores

Las imágenes de arriba muestran estas compuertas hechas con transistores, lo que contiene un procesador son miles de millones de estas, más no compuertas juntas, componen compuertas XOR, compuertas NAND, compuertas NOR, sumadores binarios y muchos otros circuitos. Ahora todas estas puertas requieren uno de estos transistores.

Ahora la RAM. RAM o memoria de acceso aleatorio contiene en el nivel básico un condensador y un transistor. Lo que hace un condensador es almacenar la carga, mientras que el transistor ayuda a almacenar la carga en el transistor y leer cuando es necesario, así es como se leen y escriben los datos en la RAM. Además, una vez que se corta la energía, el condensador se descarga y se pierden datos. Es por eso que los datos importantes se almacenan permanentemente en el disco duro. Pero si pregunta por qué no usan el disco duro como RAM, es porque el disco duro ofrece una velocidad de transferencia muy lenta y su computadora será muy lenta.

Ahora, otra cosa que debe saber sobre un procesador y una RAM es que la velocidad de transferencia o la velocidad del reloj de su RAM debe coincidir con la del procesador para un uso eficiente. Por lo tanto, no obtendrá el rendimiento completo si su RAM es más lenta o su procesador es más lento, ya que el procesador facilita la transferencia de datos desde la RAM y el procesamiento.

Trataré de responder a su pregunta con una analogía de un cajero de banco.

Un cajero en un banco generalmente comprende dos instrucciones:

  1. Deposite X cantidad de dinero en la cuenta
  2. Retirar X cantidad de dinero de una cuenta

Hay una fila de personas esperando para acercarse al cajero con algunos papeles (dinero / cheque / comprobante de depósito).

El cajero puede considerarse como la CPU que tiene un conjunto de instrucciones de dos instrucciones. No existe una analogía clara para las personas, pero los documentos que llevan son las instrucciones, potencialmente con valores. El cajero examina el cheque (o recibo) de la primera persona en la línea, decodifica lo que debe hacerse y lleva a cabo la instrucción, luego se procesan las instrucciones de la segunda persona y así sucesivamente.

Un procesador funciona de manera similar. Cuando se ejecuta un programa, todas las instrucciones se cargan en la memoria. El contador del programa realiza un seguimiento de las siguientes instrucciones para procesar. Una vez que se carga una instrucción en el procesador, decodifica lo que debe hacerse y lleva a cabo la instrucción.

El tipo de instrucciones que maneja un procesador son típicamente instrucciones aritméticas, o instrucciones para transferir contenidos de memoria (esto también incluye operaciones de E / S que básicamente transfieren datos a algún búfer). El procesador también tiene acceso a registros que pueden considerarse lugares donde podemos almacenar temporalmente valores para usarlos en instrucciones adicionales.

Un cajero puede tomar una cantidad arbitraria de tiempo para recibir instrucciones, pero el reloj de la computadora cronometra un procesador. Imagine que el cajero trabaja de tal manera que les toma 1 segundo mover sus manos a la caja registradora y otro segundo para llevar el dinero y entregárselo al cliente.

Esta analogía no es perfecta, pero está lo suficientemente cerca como para tener una idea intuitiva de lo que sucede en un procesador.

Los procesadores ingresan datos como una secuencia binaria de 0 y 1.

Realizan operaciones lógicas en ellos utilizando ‘puertas lógicas’ como AND, OR, NOT, XOR, etc. Por ejemplo, AND toma dos entradas y devuelve TRUE (1) como salida solo si ambas entradas son TRUE (1). Estas puertas lógicas utilizan los principios de los circuitos eléctricos y los semiconductores para funcionar como lo hacen.

Muchas puertas lógicas se unen para formar circuitos más complejos. Por ejemplo, un sumador binario (un circuito que agrega dos números binarios) consiste en una compuerta AND y OR.

Además, muchos de estos circuitos se unen para crear rutas complicadas y emitir los datos, que se almacenan en la memoria o se entregan al usuario.

Una CPU lee las instrucciones de la memoria y en función de eso las decodifica y las ejecuta.

La cadena de ejecución de una CPU no es algo muy suave, la CPU puede ejecutar un programa y, de repente, se puede presionar una tecla del teclado para detener la ejecución o saltar a otra instrucción.

La CPU también almacena los resultados del trabajo en direcciones exactamente reservadas por el sistema operativo.

Una CPU tiene uno o más decodificadores de instrucciones y uno o más ejecutores de instrucciones.

En un solo núcleo, el porcentaje es uno a uno, y para un i3 hay 4 decodificadores de instrucciones y 2 ejecutores de instrucciones. Para un i5 su tasa es de 4 a 4.

Para un AMD Vishera FX-8300 hay 8 decodificadores con 8 ejecutores para números enteros y solo 4 ejecutores para números de punto flotante.

Además, una CPU tiene más puertos de comunicación, se comunica con el conjunto de chips, que controla los datos de los puertos USB, S-ATA y algunos puertos PCI-Express.

Además, la CPU tiene algunos carriles reservados exclusivamente a los puertos PCI X16 Express y una comunicación principal con la RAM.

Las CPU modernas tienen una memoria pequeña pero extremadamente rápida: L1, L2, L3 Chache que se utilizan para instrucciones de almacenamiento temporal, resultados de cálculo y otros datos para un acceso mucho más rápido.

El caché L3 se puede particionar y compartir en tiempo real entre núcleos de CPU según las necesidades.

La mayoría de las computadoras simples (uniprocesadores) se componen de un par de componentes básicos simples: un “procesador” (CPU: Unidad Central de Procesamiento) y cierta cantidad de memoria (jerarquía de almacenamiento: registros, cachés (pequeña memoria rápida) y almacenamiento secundario y, a veces, terciario (más barato si es más grande y más lento).

Qué hay en una CPU: un poco de memoria rápida llamada registros y una cosa básica llamada ALU (Unidad Aritmética y Lógica). Aquí es donde la importancia de la representación binaria y la aritmética y la lógica booleana y la aritmética son importantes.

Los registros simplemente contienen datos y se pueden copiar entre ellos y la ALU. Algún número de bits puede formar “palabras” y “bytes” (caracteres). Lo más importante es darse cuenta del número finito de combinaciones y operaciones que son idénticas: suma y multiplicación a la conjunción y disyunción booleana. Realmente debería formatear una tabla para esto, pero:

0 + 0 = 0
1 + 0 = 1
0 + 1 = 1
1 + 1 = 0 (más un bit “carry”)

La multiplicación es aún más simple (ya lo sabes):
0 * 0 = 0
1 * 0 = 0
0 * 1 = 0
1 * 1 = 1

Y comparaciones similares para AND y OR. Replica estos dígitos y tú y puedes agregar varios números compuestos más grandes de base 10 (u otras bases).

La arquitectura lógica de las computadoras (básicas) es así de simple. En algunos casos, los trucos arquitectónicos pueden simplificar esto y ser más rápidos. No es necesario que la implementación de esto sea electrónica: puede ser mecánica u óptica (y existen tales computadoras digitales).

La idea brillante es que los mismos 0-1 bits que pueden representar datos también pueden representar qué instrucciones realizan estas operaciones (ese lenguaje de máquina maneja las transferencias y transportes, y otras operaciones). Es cómo un programador (humano) y la máquina interpretan estos bits (no asumas las dos burlas: eso es un error).

La implementación siempre es compleja y complicada, pero la idea es bastante simple: la CPU generalmente es un contador muy grande .

La multiplicación es la suma. La resta es la suma de una forma transformada. La división es la substracción repetida (que es la suma) mientras se cuentan las iteraciones, y así sucesivamente.

Déle un toque de memoria práctica (en forma de caché y registros ), invente una serie de códigos para las diversas operaciones (¡incluida una operación JUMP!), Agregue la capacidad de hablar con un bus y tendrá una CPU.

Los datos son códigos bajo las circunstancias correctas. Para ejecutar el BIOS, lo carga desde la ROM como datos y SALTA al primer byte cargado como instrucción . Eso es todo al respecto.

Por supuesto, si se va a utilizar en un entorno práctico , necesita una serie de medidas de seguridad y componentes adicionales antes de que sea realmente útil (me viene a la mente la corrección de errores y los perros guardianes ), pero la idea sigue siendo la misma.

Una máquina dedicada que puede hacer aritmética y tomar decisiones lógicas y obedece sus instrucciones.

Hay un artículo escrito sobre el tema “Vida humana y procesadores”.
Esto relaciona algunos de los conceptos básicos del microprocesador con la vida humana cotidiana, lo que ayuda a alguien a comprender incluso sin tener antecedentes. Pensé que sería una buena respuesta a tu pregunta.

http://elesa.in/downloads/Human%

Para mantener las cosas simples,

  • Requisitos de un procesador: grupo de circuitos lógicos y un conjunto de señales de control.

Sus operaciones:

  • Lectura de memoria: lee datos (información binaria) de la memoria
  • Escritura en memoria: escribe datos en la memoria
  • Lectura de E / S: acepta datos de dispositivos de entrada
  • Escritura de E / S: envíe datos a dispositivos de salida

Binario siendo el 0 y 1

Una operación normal cómo se lleva a cabo:

  • Almacenar datos de 8 bits
  • Realizar operaciones aritméticas y lógicas.
  • Prueba de condiciones
  • Secuencia la ejecución de instrucciones
  • Almacenar datos temporalmente durante la ejecución en la memoria de lectura / escritura

Lo que también es importante saber es:
2 instrucciones para la transferencia de datos entre el procesador y el dispositivo IO

Espero que ayude

Para comprenderlo realmente, comience con Código: El lenguaje oculto del hardware y software de la computadora: Charles Petzold: 0790145113191: Amazon.com: Libros. Aunque dice “Código”, se trata realmente de los componentes básicos de un procesador y una computadora.

En el nivel básico, un procesador de computadora lee un conjunto de instrucciones, sigue esas instrucciones y produce algún tipo de resultados. Hace esto miles, millones, billones o billones de veces por segundo, dependiendo de muchos factores. Al igual que su corazón, el procesador tiene un tambor. Una cadencia por la cual opera. Una cadencia que tiene cierto margen de maniobra [explotada por overclockers, jugadores hambrientos de poder por lo general].

A partir de ahí, los procesadores tienen muchas mejoras a lo largo de los años orientadas a superar los cuellos de botella, principalmente.

Por ejemplo:

  • la memoria caché se implementó como una reducción del cuello de botella para interfaces de memoria más lentas
  • La predicción de rama se implementó para mejorar el flujo de instrucciones al reducir las recuperaciones de instrucciones de ruta desperdiciada
  • Se implementaron tuberías para mejorar “n cosas a la vez”
  • multi-core se implementó para mejorar “n cosas a la vez”
  • Se implementaron registros de sombra o contexto para reducir los retrasos en el cambio de contexto
  • se aumentaron los anchos de bus para acomodar más “bits en tránsito” dentro del chip [y también sin]
  • Se agregaron varias unidades lógicas para admitir múltiples operaciones lógicas simultáneamente: una carga al mismo tiempo que un complemento, etc.

Dos respuestas cortas que le permitirán comprender muy bien los microchips electrónicos:

  1. Date 20 minutos y mira este clip de YouTube.
  2. Date tiempo para leer las siguientes 200 páginas de este libro: Pero, ¿cómo saberlo?

Dado que realmente trata de comprender el contenido del libro (no se requieren conocimientos previos), tendrá una comprensión integral de los diseños básicos de microship en menos de una semana.

Lo hice yo mismo y terminé comprando un libro de curso académico de 700 páginas sobre el tema 🙂 ( Diseño digital y arquitectura de computadoras, 2da edición )

Escribir para el tema combinado “¿Cómo se activan y desactivan los transistores en tareas tan complejas en una computadora”?

Deberías ir de abajo hacia arriba. y olvida cada paso que vayas. Pero recuerda dónde estás. si estás arriba, pensando abajo, no puedes nadar.

comencemos desde abajo. transistor, combina 2 transistores con condensadores y resistencias, obtienes un circuito de flip flop.

olvide los transistores y use circuitos Flip flop para hacer compuertas AND AND NAND NOR NOT NOT.

ahora olvidamos Flip flops y usamos puertas para hacer celdas de memoria y circuitos integrados de puerta lógica.
Hagamos un ALU con estos. (Unidad de lógica aritmética), que es básica para las calculadoras.

Hagamos que la suma sea parte. Tenemos 2 números escritos como binarios. ABC y DEF y nuestro resultado es RGHI

I = C xor F
r1 = C y F
H = (r1 xor B) xor E (2 suma a la vez)
r2 = (r1 y B) o (r1 y E) o (B y E)
G = (r2 xor A) xor D
R = (r2 y A) o (r2 y D) o (A y D)

y multiplique ABC con DEF, puede adivinar. haz lo mismo que en la escuela primaria. pero en binario
si F = 1 escriba ABC si E = 1 escriba ABC0 (desplazamiento a la izquierda), si D = 1, entonces ABC00 (cambio a la izquierda 2) y agréguelos.

Lo mismo para restar y división. agregue Shift left, shift right, AND, OR, XOR .. operadores lógicos.

ahora tenemos una ALU, no más transistores. o chanclas.

ahora vamos a la parte de la CPU.
1- ALU con 2 celdas de memoria (registros) como valores de entrada para operaciones aritméticas y lógicas.
2- Algunos registros para leer y escribir.
3- Una unidad de control que analiza las instrucciones (COMANDOS) de los programas y realiza operaciones selectivas.
4- BUS de datos (cables de datos conectados a todos los registros / memoria y dispositivos.
5- Bus de dirección conectado a todos los dispositivos, incluida la RAM. Los registros no necesitan un bus de direcciones, pines Set / Read / Enable directamente desde la unidad de control.
ahora tenemos CPU. pero inútil en este momento

Definimos comandos para hacer que la CPU haga lo que queramos.
si la CPU ve
0001: escriba el siguiente valor en A (00010110: escriba 0110 en A)
0010: escriba el siguiente valor en B
0011: AGREGAR B a A y escribir a A

1001: SALTA dirección del siguiente valor. (el siguiente valor en la memoria será el siguiente comando en ejecución. hasta el comando RETURN)
1010: RETURN regresar a la última dirección de JUMP y continuar.
1011: SI A = B ir dirección (1011XXXX si AB = 0 ir XXXX)
1101: LEER DATOS DEL PUERTO (1011XXXX leer el puerto XXXX en A) la escritura del puerto es para dispositivos fuera de la CPU. cada dispositivo se encuentra con direcciones de puerto.
1111: ESCRIBIR DATOS DEL PUERTO (1011XXXX escribir A en el puerto XXXX)

Ahora tenemos una CPU que puede hacer operaciones de memoria. pero necesitamos un programa de inicio básico = BIOS. vamos a escribirlo

comprobaciones básicas, si tenemos un disco, de lo contrario no alertará ningún disco y se detendrá. De lo contrario sigue adelante.
Verifique las particiones disponibles para la partición activa.
si no hay partición, vaya al siguiente disco. y repita Active Partition Check.
00010001 (Escribir el puerto del disco en el valor A)
010001001100 Bloque de lectura 0100 bytes a 1100 dirección de memoria.
10011100: SALTE a 1100 dirección de memoria y ejecutar.

Cada sistema operativo tiene su propio sector de arranque que tiene su propio programa pequeño para leer particiones de disco y archivos de arranque. e inicia el sistema operativo.

ahora tenemos una computadora con sistema operativo. El conjunto de comandos sigue siendo binario (ensamblaje) que estábamos usando como hace 25 años.

El siguiente paso es programar lenguajes para hacer textos legibles para convertir comandos binarios.
Comandos:
A = …
si A> 10 entonces A = A / 2
Comandos compilados por lenguaje de programación:
Escribe un
Escribir B, 10
Resta B de A
SI SE FIRMA = -1 GOTO XXX
Escribe B, 2
Divide A a B
XXX: FIN

solo 1 comando toma 6 CLOCK activa muchas partes de la CPU y toneladas de transistores. ya no nos importa qué transistor tiene qué valor.

Traspuesta. Álgebra de Boole.
Cualquier IC digital en pocas palabras.

Una CPU se compone de:

  1. Unidad de lógica aritmética (ALU): realiza los cálculos
  2. Caché: almacena la información necesaria para los cálculos, cuando no se encuentra la información necesaria, la solicitud de la CPU desde la memoria o el disco duro

flujo de datos:

disco duro> memoria> caché de CPU> ALU

Las puertas lógicas simples se pueden construir con circuitos físicos como AND, OR y NOT. Las combinaciones de estos se pueden aplicar a bits individuales (en realidad pines de 5 voltios), y combinar 32 o 64 a la vez para corresponder a un conjunto básico de instrucciones como suma, resta, etc.

Su lenguaje de programación estándar puede convertir instrucciones más abstractas como aritmética de punto flotante, bucles, etc. en este conjunto básico de instrucciones.

El procesador simplemente ejecuta las instrucciones del software cargado, que entre otros tipos incluyen cálculos matemáticos y comunicación con las interfaces del sistema.

http://en.m.wikipedia.org/wiki/C

Un procesador de computadora funciona con millones y millones de transistores que están dispuestos para formar puertas lógicas. Al pasar unos y ceros a las puertas lógicas, la computadora puede hacer operaciones aritméticas y, por lo tanto, puede calcular información.