Entradas

RISC VS CISC

Imagen
A la hora de diseñar un procesador se debe tomar en cuenta cual va ser su juego de instrucciones. Existen dos tipos distintos, el RISC(Reduced Instruction Set Computing) y el CISC(Complex instruction set computing). Su mayor diferencia es la complejidad y velocidad de ejecución de sus instrucciones. RISC: La estructura RISC esta basada en instrucciones simples y de rapida ejecución. Su set de instrucciones es pequeño, pero con instrucciones mucho mas optimizadas, esto quiere decir que cada instrucción cumple pequeñas tareas. Sus instrucciones también son de un tamaño fijo. Debido a su simpleza, los chips necesitan menos transistores, lo que los hace mas baratos de diseñar y producir. Algunas ventajas del RISC: La decodificación de instrucciones es simple. Sus instrucciones son uniformes Sus registros de propósito general son idénticos Tiene nodos de direccionamiento simple A la hora de escribir código, beneficia al programador permitiendole remover código inn...

Pipelining

Imagen
Pipeline de instrucciones Para mejorar el rendimiento de un CPU existen dos opciones: Mejorar el hardware, introduciendo circuitos mas rapidos Hacer que el CPU pueda hacer mas de una operación al mismo tiempo. Debido a que existe un limite en la velocidad  de un hardware, y conseguir componentes fisicos es mas costoso. La mejor opción es la segunda, para esto tenemos el pipeline. El pipeline básicamente es una técnica por medio de la cual se puede traslapar la ejecución de instrucciones. Se divide en segmentos o etapas que están conectadas unas con otras. Un ejemplo de pipeline en la vida real: En una lavandería tenemos a cuatro individuos (A,B,C,D). Cada uno tiene que lavar, secar, doblar y acomodar su ropa. Cada proceso toma 30 minutos. Si ocurre un proceso secuencial, es decir que el individuo A espera a que termine el individuo B y el C espera al D y así consecutivamente. El tiempo total para que los individuos terminen sus tareas sería de 8 horas.  ...

Llamadas al sistema

Imagen
Para entender como funcionan las llamadas al sistema primero debemos entender como funcionan los modos de operación de la unidad central de procesamiento. Tenemos dos modos, el modo usuario y el modo Kernel. En el modo kernel, la CPU puede realizar cualquier operación permitida por su arquitectura, es decir cualquier instrucción puede ser ejecutada, cualquier área de la memoria puede ser accedida, etc... Mientras que en el modo usuario, no se tiene ese acceso directo a los recursos. ¿Que pasa cuando un programa en modo usuario necesita acceder a la RAM o a otro recurso ? El programa le pide al kernel el acceso a ese recurso, y esto se hace con las llamadas al sistema. Cuando un programa hace una llamada al sistema, el modo es cambiado de usuario a kernel. El kernel provee los recursos pedidos por el programa y el modo vuelve a cambiar, pero esta vez de modo kernel a modo usuario. Generalmente, las llamadas al sistema son hechas por los programas en las siguientes situaci...

ARDUINO

Imagen
¿Que es un arduino ? Un arduino es una plataforma de prototipos electrónicos de código abierto basa en hardware y softwares fáciles de utilizar y de aprender. Arduino consiste en un micro-controlador y su software o IDE (esto corre en la computadora) que se usa para escribir y enviar las instrucciones al micro-controlador. Con el pasar de los años los arduinos han sido el cerebro de muchos proyectos, desde cosas del usos diario hasta complicados proyectos científicos. Una gran comunidad de creadores es conocida para la plataforma, sus contribuciones hacen que la gran cantidad de conocimientos sobre el arduino sean de gran ayuda tanto como para novatos o para expertos también. Micro-controlador IDE del Arduino Las instrucciones creadas para el arduino se basan en un lenguaje simplificado de C++ Ventajas de Arduino: Los arduino son mucho más baratos si se compara su precio con otros micro-controladores. Las versiones mas baratas pueden armarse a mano, y las ve...

Ejercicio lenguaje ensamblador

Imagen
Debido a que esta semana nos hemos enfocado en resolver ejercicios en lenguaje ensamblador, decidí desarrollar un pequeño programa. El programa nos permite contar la cantidad de veces que aparece un carácter en una cadena de caracteres. Aun que es un ejercicio básico y sencillo ayuda a entender un poco mas sobre el lenguaje ensamblador. Código completo del programa Para facilidad de entendimiento me centrare en las distintas etiquetas del programa. Variables Las variables las encontramos en el segmentos de datos. En la linea 3 y 5, vemos dos variables(amblas alienadas a 4 bytes). La variable entryMessage es la que almacena el texto al que queremos buscarle el carácter. Y la variable outMessage es el mensaje que se utilizara para imprimir. Vemos que la variable tiene un %c y un %d, esto nos permite ingresar en este texto un carácter(%c) y un valor decimal(%d).  Las variables tienen una dirección, y son las que se aprecian en la linea 36 y 37 del código....

Estructuras de control.

Imagen
Las estructuras de control en los lenguajes de programación permiten modificar el flujo de las instrucciones de un programa. Este post se centra en las estructuras de control condicionales: if, if-else, if-elseif-else. Y en las estructuras de control de repetición o iterativas: while, do while, for. Estructuras de control condicionales : Este tipo de estructuras de control nos permite revisar cierta condición que retornar un resultado booleano True o False (Verdadero o Falso).   Normalmente es necesario tomar diferentes alternativas para resolver algo dependiendo de las circunstancias. El if nos permite ejecutar una secuencia de instrucciones de forma condicionales. La ejecución de esta secuencia de instrucciones depende de el valor de la condicion. El funcionamiento del If seria algo asi: if (condicion){        (Condicion = True)         Ejecute instrucciones } Continuacion Si la condición se cumple ejecuta las ins...

Lenguaje Ensamblador

Imagen
Lenguaje ensamblador El lenguaje ensamblador es un lenguaje de programación de bajo nivel que refleja directamente la arquitectura e instrucciones de el CPU. Debido a esto existen diferentes lenguajes para las diferentes arquitecturas. ¿ Por que es útil ? Debido a que el lenguaje maquina es muy difícil de leer para los humanos existe el lenguaje ensamblador.Este lenguaje permite a los programadores crear instrucciones legibles para los humanos que corresponden casi exactamente al lenguaje maquina. ¿Por que es un lenguaje de bajo nivel ? Es clasificado como un lenguaje de bajo nivel debido a que existe una relación uno a uno entre lo que le dice a la computadora hacer y lo que hace. (Una instrucción en ensamblador contiene como máximo una instrucción para la computadora.) Algunas ventajas Los programas escritos en ensamblador son mas rápidos y eficientes que aquellos programas escritos en otros lenguajes de programación. Permite al programador un control ...