Introducción a la computaciónInformática I (2015-2) Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería Informática I Introducción a la computación
Informática I (2015-2) Computer components 2 CPU MemoriaI/O Teclado Mouse Pantalla Wi-Fi Audio Core i5, i7 Cortex M15 RAM Flash Cache SOFTWAREHARDWARE se guarda se ejecuta se comunica
Introducción a la computaciónInformática I (2015-2) Von Neumann architecture 3 Memoria I/O Unidad de Control Unidad Aritmética-Lógica CPU
Introducción a la computaciónInformática I (2015-2) There is no magic! Cualquier computador es capaz de hacer exactamente lo mismo, pero diferente (¿cómo así?). Para hacerle entender a un computador lo que debe hacer, existe una serie de transformaciones que cruzan múltiples capas de abstracción. ¿Porqué es importante la abstracción? ¿Cuándo es importante la concreción? 4
Introducción a la computaciónInformática I (2015-2) Abstraction layers 5 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores
Introducción a la computaciónInformática I (2015-2) Problem Ideas, dificultades, oportunidades. Planteamos problemas en “lenguaje natural”, por ejemplo, español. … lenguajes AMBIGUOS ! “Ahorita voy a hacer una vuelta” “Los estudiantes que sacaron notas bajas deben repetir la materia” 6 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores
Introducción a la computaciónInformática I (2015-2) Algorithm Procedimiento paso a paso (para resolver un problema) que debe ser… Finito : el procedimiento debe terminar Calcular todos los dígitos decimales del número π » infinito Preciso : pasos definidos de manera precisa Receta de cocina: “… no deje que se vuelva grumoso” » impreciso » Algoritmo: “… no permita que la variabilidad de la densidad de masa supere el 5%” Computable : pasos que pueden ser calculados por un computador Encuentre el número primo más grande » no existe 7 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores
Introducción a la computaciónInformática I (2015-2) Algorithm 8 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores Algortimo AAlgortimo BAlgortimo C Problema Requiere el menor número de pasos. Posibilita la concurrencia. Requiere la mínima cantidad de memoria.
Introducción a la computaciónInformática I (2015-2) Program No permite ambigüedades Implementamos programas usando lenguajes de programación Lenguajes para diferentes propósitos: – Fortran: cálculos científicos – Java: internet, móviles – Python: propósito general, scripts, internet – C: control de bajo nivel, velocidad 9 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores
Introducción a la computaciónInformática I (2015-2) Programming language Definición: Es un lenguaje mediante el cual podemos comunicarnos con un computador para darle instrucciones 10 Lenguajes de alto nivel: independientes del procesador, e.g. Python Lenguajes de bajo nivel: assembly => uno para cada procesador
Introducción a la computaciónInformática I (2015-2) Program 11 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores Programa en lenguaje C Programa en lenguaje Java Programa en lenguaje Python Algoritmo Se ejecuta más rápido Es más portable Se escribe más rápido
Introducción a la computaciónInformática I (2015-2) IEEE Spectrum Programming languages Ranking
Introducción a la computaciónInformática I (2015-2) ISA: Instruction-set architecture Conjunto de instrucciones para controlar el procesador Interface entre el software y el hardware Assembly vs. Machine code 13 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores instrucciónoperandos => tipos de datos LWR1, 0x8000 ADDR1, R4, R
Introducción a la computaciónInformática I (2015-2) ISA 14 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores ARM ISAX86 ISAPowerPC ISA Programa Consume menos energía Es más comúnEs más estable Lo van a estudiar en Electrónica Digital II y III
Introducción a la computaciónInformática I (2015-2) Micro-architecture Conjunto de mecanismos y estructuras de hardware que no están expuestas al programador o programa. 15 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores
Introducción a la computaciónInformática I (2015-2) Micro-architecture 16 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores 8086Core i3Core i7 X86 ISA Cuesta menosEs más rápido- Lo van a estudiar en Electrónica Digital II y la electiva Arquitecturas Avanzadas de Computadores
Introducción a la computaciónInformática I (2015-2) Circuits Compuertas lógicas que permiten hacer operaciones elementales con bits: 17 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores Lo van a estudiar en Matemáticas Discretas y en Electrónica Digital I INPUTANDORNOT
Introducción a la computaciónInformática I (2015-2) Transistors Elemento base de la electrónica que funciona como un switch. Fabricados con silicio (CMOS) Litografía de 22nm 18 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores Lo van a estudiar en Electrónica Analógica I y II
Introducción a la computaciónInformática I (2015-2) Summary: abstraction layers 19 Problema Algoritmo Programa Instruction-set Architecture Micro-arquitectura Circuitos Transistores TRADUCTOR PROGRAMADOR
Introducción a la computaciónInformática I (2015-2) Créditos Las figuras en esta presentación fueron creadas por el autor de la misma. Además, las imágenes usadas en esta presentación tienen licencia Creative Commons y fueron tomadas de: k_1.1_TU1JP%28HFZ%29_02.JPG aru_Legacy.jpg t_periods.jpg
Introducción a la computaciónInformática I (2015-2) Computador, procesador, core, CPU 21 Computador Procesador CORE