Este artículo explica cómo acceder al menú del bootloader de Android desde un smartphone.

Hace poco perdí o me robaron mi teléfono y tuve la oportunidad de jugar un rato con un Moto G Plus abandonado que me prestó un familiar para usar temporalmente. La idea era hacer un reseteo de fábrica para comenzar con una instalación limpia. Esta tarea se puede resolver desde los ajustes de Android, aunque también se puede hacer desde el menú "fastboot" de Android iniciando en "RECOVERY MODE".

Este artículo demuestra cómo aplicar las técnicas de desenrollado de bucles, reordenamiento de instrucciones y renombramiento de registros para evitar conflictos en el pipeline de instrucciones de un procesador, originados por dependencias de datos verdaderas.

Este artículo demuestra cómo obtener un secuenciamiento óptimo para un pipeline de datos no lineal. Esto tiene como objetivo alcanzar la máxima utilidad del pipeline (máximo throughput) cuando existen conflictos en etapas con realimentaciones negativas (retroalimentaciones).

El concepto de pipeline como técnica de paralelización de tareas fue introducido por Ransom Olds en la línea de ensamblaje del Oldsmobile Curved Dash. Luego fue perfeccionado por Henry Ford para la producción del Ford Modelo T agregando cintas transportadoras, lo cual le permitía producir un vehículo cada 93 minutos. Por esta razón generalmente se le atribuye la idea de pipeline a Henry Ford. Más allá de surgir de la industria automotriz, es un concepto genérico que puede ser aplicado a cualquier tipo de tarea.

En computación, un pipeline de datos es un conjunto de elementos de procesamiento de datos conectados en serie, donde la salida de un elemento o etapa es la entrada de la siguiente. Esto permite paralelizar una tarea subdividiéndola en etapas que se ejecutan concurrentemente. De esta forma es posible ejecutar una misma tarea sobre diferentes datos al mismo tiempo (siempre que no hayan conflictos en las etapas en las que éstos se ejecutan).

En ciencias de la computación, el pipelining de instrucciones es una técnica para implementar paralelismo a nivel de instrucciones dentro de un procesador. Esta técnica intenta mantener cada parte del procesador ocupada con una instrucción diferente dividiendo la ejecución de las instrucciones en una serie de pasos secuenciales efectuados por etapas diferentes, las cuales procesan las diversas partes de las instrucciones en paralelo (organizadas en pipeline). De esta forma, las instrucciones fluyen a través de la CPU en etapas, las cuales típicamente utilizan una etapa por cada paso del ciclo de Von Neumann: obtener la siguiente instrucción; recuperar los operandos necesarios; ejecutar la instrucción; escribir los resultados.

Las computadoras RISC (Reduced Intruction Set Computer) tiene un conjunto de instrucciones simple y reducido en lugar de un conjunto de instrucciones complejo y especializado (CISC, Complex Instruction Set Computer). La principal característica distintiva de una arquitectura RISC es que el conjunto de instrucciones está optimizado para fluir en un pipeline de instrucciones altamente regular. Mediante arquitecturas RISC es posible comprender el funcionamiento de un pipeline de instrucciones simple, para luego estudiar pipelines más complejos y avanzados.

En artículos anteriores hemos visto las operaciones de suma y multiplicación de números enteros binarios. Veamos ahora la división, otra de las operaciones aritmética elementales que debe implementar un microprocesador.