Es de conocimiento común que el código lo escribe un desarrollador y cómo los humanos se comunican con las computadoras. Sin embargo, ¿alguna vez ha pensado en cómo el software, como el código, interactúa con el hardware de la computadora, como una CPU (unidad central de procesamiento)? Si la respuesta es sí, entonces ha venido al lugar correcto.

Para comprender cómo se ejecuta el código en una computadora, debe comprender qué hace que una computadora funcione y cómo se puede manipular. Primero, hablemos primero de las ideas fundamentales del hardware de la computadora antes de pasar al lado del software.

¿Qué es binario?

El binario es un sistema numérico de base 2 que los procesadores y la memoria utilizan para ejecutar el código. Los números binarios solo pueden ser 1 o 0, de ahí su nombre. Si agrupa ocho números binarios (00000000), obtiene lo que se conoce como un byte, mientras que un solo número binario (0) se llama bit.

Cómo un interruptor simple produce señales binarias

Todo lo lógico sobre la informática con máquinas comienza con un simple cambio. Un interruptor simple tiene dos conductores y un mecanismo de conexión y desconexión. La conexión de ambos conductores permite que fluya la corriente, lo que produce una señal en el otro extremo del conductor. Por otro lado, si los conductores están desconectados, la corriente no fluirá, lo que significa que no se producirá ninguna señal.

instagram viewer

Crédito de la imagen: 991joseph /Wikimedia Commons

Dado que un interruptor solo puede estar encendido o apagado en una instancia, proporcionan el mecanismo ideal para hacer que las señales altas y bajas se utilicen para producir señales de onda cuadrada.

Cuando pulsas un interruptor, produce una señal o un bit de datos. Una foto normal tomada desde un teléfono inteligente tendría alrededor de cinco megabytes de datos, lo que equivale a 40.000.000 de bits. Eso significaría que necesitará presionar el interruptor decenas de millones de veces solo para producir suficientes datos para una foto tomada desde su teléfono inteligente.

Con las limitaciones mecánicas de un interruptor, los ingenieros necesitaban algo que no tuviera partes móviles y proporcionara velocidades de conmutación más rápidas.

Transistores usados ​​como interruptor

Crédito de la imagen del transistor: Evan-Amos /Wikimedia y Crédito de imagen de onda cuadrada: Sponk /Wikimedia

Gracias al descubrimiento del dopaje (manipulando la conductividad eléctrica de semiconductores como el silicio), los ingenieros pudieron hacer interruptores controlados eléctricamente conocidos como transistores. Esta nueva invención permitió velocidades de procesamiento más rápidas que necesitaban poco voltaje para la alimentación, lo que finalmente hizo posible apilar más de mil millones de estos transistores en una sola CPU moderna.

¿Qué es la arquitectura de la CPU?

Luego, los transistores se organizan inteligentemente para hacer puertas lógicas, semisumadores, sumadores, flip flops, multiplexores, registros y varios componentes que hacen que la CPU sea funcional. La forma en que se apilan estos componentes define lo que se conoce como arquitectura de CPU.

La arquitectura de la CPU también dicta la ISA (Arquitectura de conjunto de instrucciones) de un procesador. Un ISA tiene una lista incorporada de instrucciones que una CPU puede ejecutar de forma nativa. Estas instrucciones luego se mezclan secuencialmente a través de un lenguaje de programación para hacer lo que se conoce como un programa. Por lo general, cientos de instrucciones están disponibles en una CPU, incluidas sumas, restas, mover, guardar y cargar.

Aquí hay una muestra de un conjunto de instrucciones:

Instrucción-conjunto-muestra

Cada instrucción en un conjunto de instrucciones tiene su propia dirección binaria conocida como código de operación. El código de operación serán los primeros bits binarios que indican qué operación del conjunto de instrucciones utilizar.

Sintaxis de instrucciones de ensamblaje

Después del código de operación está el operando. El operando contiene valores y direcciones donde se utilizará el código de operación.

El diagrama muestra una instrucción de 8 bits. Si una CPU tiene una arquitectura de 64 bits, las instrucciones pueden abarcar hasta 64 bits de ancho de instrucción, lo que lo convierte en un procesador más capaz.

Relacionado: ¿En qué se diferencian las CPU RISC y CISC?

El ensamblador

Ahora que comprende las señales binarias, puede aprender cómo su computadora interpreta dichas señales. La forma en que se interpretará el código de máquina depende del tipo de lógica utilizada en un ensamblador (un programa de bajo nivel que se utiliza para decodificar y ensamblar el código en el binario adecuado).

Por ejemplo, si nuestro ensamblador utiliza el estándar ASCII (Código estándar americano para el intercambio de información), nuestro ensamblador tomaría el código de máquina dado y lo interpretaría de la misma manera que el ASCII en la tabla debajo.

00101001 A 00101111 GRAMO 00110101 METRO 00111011 S 01000001 Y
00101010 B 00110000 H 00110110 norte 00111100 T 01000010 Z
00101011 C 00110001 I 00110111 0 00111101 U
00101100 D 00110010 J 00111000 PAGS 00111110 V
00101101 mi 00110011 K 00111001 Q 00111111 W
00101110 F 00110100 L 00111010 R 0100000 X

Dado que nuestro ensamblador usa ASCII (versión de 8 bits), cada ocho números binarios en el binario se interpretan como un carácter. El ensamblador tomaría este byte y lo interpretaría de acuerdo con los estándares dados. Por ejemplo, 01000001 01101001 01010100 se traduciría en la palabra "bit".

Comprensión del lenguaje ensamblador

El lenguaje ensamblador es un lenguaje de programación de bajo nivel legible por humanos que manipula directamente los operandos y códigos de operación de una arquitectura de CPU.

A continuación, se muestra un ejemplo de un código ensamblador simple que utiliza el conjunto de instrucciones mostrado anteriormente:

1. LODA # 5 
2. LODB # 7
3. AÑADIR R3
4. STRE M12

Este bloque de código se almacena en la RAM hasta que la CPU recupera cada línea de código una por una.

El ciclo de recuperación, decodificación y ejecución de la CPU

La CPU ejecuta código a través de un ciclo conocido como Obtener, Decodificar y Ejecutar. Esta secuencia muestra cómo una CPU procesa cada línea de código.

Ha podido recuperar: El contador de instrucciones dentro de la CPU toma una línea de instrucción de la RAM para que la CPU sepa qué instrucción ejecutar a continuación.

Descodificar: El ensamblador decodificará el bloque de código legible por humanos y lo ensamblará como binarios formateados correctamente para que la computadora lo entienda.

1. 00010101 
2. 00100111
3. 00110011
4. 01011100

Ejecutar: Luego, la CPU ejecuta los binarios aplicando las instrucciones indicadas por el código de operación a los operandos proporcionados.

La computadora ejecutar lo de la siguiente manera:

  1. Cargue el primer registro con 5
  2. Cargue el segundo registro con 7
  3. 5 + 7 = 12, guardar 12 en el tercer registro
  4. Almacene el valor del tercer registro en la dirección RAM M12

La computadora ha sumado dos números y ha almacenado el valor en la dirección RAM especificada.

¡Estupendo! Ahora sabes cómo una computadora ejecuta el código. Sin embargo, no se detiene ahí.

Ir más lejos

Con el hardware adecuado, un ensamblador y un lenguaje ensamblador, la gente podría ejecutar código con una facilidad razonable. Sin embargo, a medida que tanto los programas como el hardware de la computadora se volvieron aún más complejos, los ingenieros y programadores tuvieron que Piense en una forma de hacer la programación menos tediosa y garantizar la compatibilidad con diferentes tipos de CPU. arquitectura. De ahí la creación de compiladores e intérpretes.

¿Qué es un compilador y un intérprete?

El compilador y el intérprete son programas de traducción que toman código fuente (programas hechos de lenguajes de programación de alto nivel) y traducirlos a lenguaje ensamblador, que luego el ensamblador decodificará a binario.

Un Interprete tomará una línea de código y la ejecutará inmediatamente. Esto generalmente se usa en terminales como el terminal Linux Bash Shell y el terminal Windows PowerShell. Excelente para realizar tareas simples y únicas.

Crédito de la imagen: Rlistmedia /Wikimedia Common

En contraste, un compilador tomará varias líneas de código y las compilará para hacer un programa. Ejemplos de estos programas serían Microsoft Word, Photoshop, Google Chrome, Safari y Steam.

Con la creación de compiladores e intérpretes, se crearon lenguajes de programación de alto nivel.

Lenguajes de programación de alto nivel

Los lenguajes de programación de alto nivel son cualquier lenguaje después del código ensamblador. Algunos de estos lenguajes con los que puede estar familiarizado son C, Python, Java y Swift. Estos lenguajes de programación hicieron que la programación fuera más legible y más simple que el lenguaje ensamblador.

Aquí hay una comparación lado a lado para ilustrar lo difícil que es programar en ensamblador que con un lenguaje de programación de alto nivel como Python:

Ambos códigos imprimirán "Hola mundo".

Con estos lenguajes de programación, los desarrolladores pueden programar juegos, sitios web, aplicaciones y controladores en una cantidad de tiempo razonable.

Relacionado: Python vs. Java: el mejor lenguaje para 2022

Las computadoras pueden ejecutar todo tipo de código

Una computadora es un dispositivo que solo puede leer binarios. Estos binarios son producidos por más de mil millones de transistores de tamaño microscópico empaquetados dentro de una CPU. La disposición de los transistores dicta la ISA (Arquitectura de conjunto de instrucciones) de una CPU, que proporciona cientos de instrucciones que una CPU puede ejecutar fácilmente una vez que su código de operación se llama a través del código. Los desarrolladores mezclan y combinan estas instrucciones secuencialmente, lo que crea un programa completo, como motores de juegos, navegadores web, aplicaciones y controladores.

Una CPU ejecuta código a través de una secuencia conocida como ciclo de recuperación, decodificación y ejecución. Una vez que se carga un fragmento de código en la RAM, la CPU recuperará su contenido uno por uno, decodificará el contenido en binario a través del ensamblador y luego ejecutará el código.

Dado que el ensamblador solo puede traducir código creado explícitamente para la arquitectura de la CPU, los compiladores y Los intérpretes se construyeron sobre el ensamblador (como un adaptador) para trabajar en diferentes tipos de CPU. arquitectura. Un intérprete tomará un comando y lo ejecutará inmediatamente. Por el contrario, un compilador tomará todos sus comandos y los compilará en un programa reutilizable.

Se han creado lenguajes de programación de alto nivel como Python, C y Java para hacer la programación más fácil, rápida y conveniente. La gran mayoría de los programadores ya no tienen que codificar en lenguaje ensamblador, ya que sus lenguajes de programación de alto nivel fáciles de usar se pueden traducir al ensamblador a través de un compilador.

Con suerte, ahora tiene una mejor comprensión de los fundamentos de las computadoras y cómo ejecutan el código.

¿Cómo funciona una computadora y qué hay dentro?

Es una pregunta simple, pero en la que todos reflexionan de vez en cuando: ¿cómo funciona realmente esa computadora frente a usted?

Leer siguiente

CuotaPíoCorreo electrónico
Temas relacionados
  • Tecnología explicada
  • Programación
  • Procesador de computadora
  • Procesando
Sobre el Autor
Jayric Maning (5 artículos publicados)

Deseoso de aprender cómo funcionaban las cosas, Jayric Maning comenzó a jugar con todo tipo de dispositivos electrónicos y analógicos durante su adolescencia. Estudió ciencias forenses en la Universidad de Baguio, donde se familiarizó con la informática forense y la seguridad cibernética. Actualmente está haciendo mucho auto-estudio y jugando con la tecnología para descubrir cómo funcionan y cómo podemos usarlos para hacer la vida más fácil (¡o al menos más genial!).

Más de Jayric Maning

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse