Lógica Digital y Lenguaje de Máquina

Información Básica

  • Créditos: 3
  • Horas de trabajo acompañado: 5 / semana (3 horas de clase, 2 Laboratorio)
  • Horas de trabajo independiente: 4 / semana
  • Pre-requisitos:
  • Tipo de curso: Núcleo de Formación Fundamental.

Descripción del Curso

Este curso introduce los principios básicos del funcionamiento, elaboración y programación de un sistema de cómputo. Para esto se presentan y desarrollan los conceptos de operación de los circuitos electrónicos digitales, la programación en lenguaje ensamblador y los diferentes tipos de representación de datos en un sistema binario. El curso ofrece las bases teóricas y prácticas que le permitirán al estudiante identificar de manera crítica los componentes de un computador y el impacto que tiene la codificación, en diferentes niveles de abstracción, sobre la ejecución de los programas en la máquina.

Objetivos

Al finalizar el curso los participantes podrán:

  1. Conocer los elementos básicos que conforman un sistema digital de cómputo
    1. Definir sistema de cómputo, procesador, memoria, entradas y salidas, interconexión, programa, instrucciones y datos.
    2. Diferencias los diferentes tipos de computadores actuales.
    3. Entender la interacción de cada uno de los componentes del computador.
    4. Comparar las diferentes alternativas de diseño de un sistema de cómputo.
    5. Entender el principio de operación de una arquitectura von Neumann.
  2. Programar en un lenguaje de bajo nivel
    1. Definir modelo de programación, compilador, ensamblador, encadenador (linker), código fuente, código binario, bibliotecas(library), lenguajes de alto y bajo nivel, lenguaje de máquina.
    2. Describir los procesos de compilación y ejecución de un programa.
    3. Reconocer la sintaxis de un programa en lenguaje ensamblador.
    4. Identificar los diferentes modos de direccionamiento.
    5. Entender las instrucciones de un procesador
  3. Diseñar circuitos digitales
    1. Reconocer las magnitudes eléctricas básicas como voltaje, corriente y resistencia.
    2. Describir los componentes de un circuito electrónico.
    3. Usar diferentes sistemas numéricos para representar una magnitud.
    4. Diferenciar entre circuitos digitales combinatorios y secuenciales.
    5. Conocer las diferentes técnicas de diseño de un sistema digital basado en las operaciones lógicas básicas.
    6. Reconocer los bloques funcionales fundamentales como multiplexor, decodificador, sumadores, latch, flip-flop, contador.
  4. Implementar un sistema de cómputo básico.
    1. Seleccionar el conjunto de instrucciones.
    2. Escribir el programa en lenguaje ensamblador.
    3. Describir en VHDL los componentes del computador.

Se desarrollan competencias en

  1. Lenguaje ensamblador
  2. Simulador/ensamblador
  3. Herramientas de simulación de circuitos lógicos
  4. VHDL
  5. Tarjeta de desarrollo basada en FPGA

Contenido

Capítulo 1: Principios de Operación del computador

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
1 1 Introducción e historia de los computadores Familiaridad [1,2,5,6,7]
2 1 Niveles de Abstracción: Interfaz Hardware/Software Uso [1,4,6]
3 1 Estructura básica de un computador: Arquitectura Von Neumann Uso [1,2,4,6]
4 3 Camino de Datos y la ejecución de las instrucciones Uso [1,2,6]

Total de Horas: 6.

Sesión Horas de trabajo independiente Temas Bibliografía
1 4 Elaborar una presentación de 15 minutos para profundizar en las diferentes tecnologías de fabricación de memorias. [1,2,7,8]
2 4 Elaborar una presentación de 15 minutos que explique las características de varios sistemas operativos. [1,2,4]
3-4 4 Taller sobre la ejecución de los tipos de instrucciones en una arquitectura básica.[1, 2, 4,6]

Total de Horas: 12

Capítulo 2: Lenguaje de Máquina

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
5-6 3 2 Arquitectura del Conjunto de Instrucciones:Tipos de instrucciones (manipulación de datos, control, entrada/salida), tipos de datos, formato de instrucciones, modos de direccionamiento. Uso [1,2,4,6]
7-10 6 4 Lenguaje de Máquina Uso [1,2,4,6]
11-12 3 2 Mecanismos de llamada y retorno a subrutinas, interrupciones y manejo de dispositivos de entrada/salida.Diferencias entre: Segmento de código vs pila vs memoria dinámica, estática y libre (heap) Uso [1,2,4,6]
13-14 3 2 Código interpretado versus código nativo compilado versus compilación de representación intermedia portable. Ejecución como código nativo o en una máquina virtual, alternativas de carga dinámica y generación de código dinámico. Representación en tiempo de ejecución de construcciones del lenguaje núcleo tales como objetos y funciones de primera clase (closures). Uso [1,2,4,6]
15-16 3 2 Las estructuras de datos para representar código para ejecución, traducción, o transmisión. Implementación de bucles, recursividad, y llamadas de cola. Uso [1,2,4,6]
17-18 3 2 Gestión de la memoria de forma manual: asignación, liberación, y reutilización de memoria del espacio libre (heap). Gestión de memoria automatizado: recolección de basura como una técnica automatizada usando la noción de accesibilidad Uso [1,2,4,6]

Total de Horas: 35.

Sesión Horas de trabajo independiente Temas Bibliografía
5-12 8 Taller: Implementación de algoritmos en lenguaje de máquina. [1,2,6]
13-18 4 Lectura de Máquinas virtuales y manejo de memoria. [1,4]
13-18 4 Tarea de Lenguajes Compilados e interpretados.[7,8]

Total de Horas: 16

Capítulo 3: Circuitos Digitales

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
19-20 3 2 Sistemas numéricos: Conceptos de Bits, bytes, words, operaciones y representación de datos signados y complemento a dos. Bases numéricas y representación de datos numéricos. Operaciones aritméticas en diferentes bases. Representación de datos no numéricos. Representaciones de sistemas en punto fijo y flotante. Representación de arreglos. Uso [1,3,4,5,6]
21-25 6 6 Circuitos Combinatorios y secuenciales: Bloques fundamentales combinatorios (compuertas lógicas, multiplexores, decodificadores, unidades aritméticas y lógicas, memoria ROM ). Expresiones lógicas, simplificación lógica booleana, minimización y suma de productos. Bloques fundamentales secuenciales (latches, flip-flops, contadores, registros, máquinas de estado, memoria RAM), concepto y uso de FPGA (diseño e implementación de Camino de datos, unidad de control y memoria) . Concepto de reloj, estado, secuenciamiento, máquina de estados (ejemplo: Protocolo de red de computadores). Uso [1,3,4,5,6]
26-27 3 2 Herramientas de diseño asistidas por computador , lenguajes de descripción de hardware (VHDL) y Notación a nivel de transferencia de registro (RTL). Uso [3,5,6]
28 3 Restricciones físicas : Retardo en compuertas, fan –in, fan-out, consumo de energía y disipación de potencia. Conceptos : Sistema Digital versus Análogo, Sistema Discreto versus continuo. Uso [3,5,6]

Total de Horas: 25.

Sesión Horas de trabajo independiente Temas Bibliografía
16-25 4 Diseño proyecto (Implementación de una Arquitectura de cómputo Multiciclo). [1,2,6]
16-25 4 Diseño proyecto (Implementación de una Arquitectura de cómputo Multiciclo). [1,2,6]
16-25 4 Diseño proyecto (Implementación de una Arquitectura de cómputo Multiciclo).[1,2,6]
16-25 4 Diseño proyecto (Implementación de una Arquitectura de cómputo Multiciclo).[1,2,6]

Total de Horas: 16

Capítulo 4: Arquitectura del Computador

Sesión Horas teóricas Prácticas acompañadas Temas Profundidad Bibliografía
25 3 Fundamentos dispositivos de entrada/salida. Protocolos de comunicación para operaciones de entrada/salida: interrupciones, programada, handshaking y buffering. Uso [1,2,4,6]
26 2 2 Procesamiento secuencial a nivel de aplicación, un solo hilo de ejecución (Arquitectura multiciclo y monociclo). Uso [1,2,4,6]
27 2 2 Procesamiento paralelo a nivel de aplicación: nivel de solicitud (servicios web / cliente-servidor / distribuido), un hilo de ejecución por servidor, y múltiple hilos con múltiples servidores. Uso [1,2,4,6]
28 2 2 Abstracciones en programación, interfaces y uso de librerías. Uso [1,2,4,6]

Total de Horas: 15.

Sesión Horas de trabajo independiente Temas Bibliografía
25 4 Elaborar una presentación de 15 minutos para profundizar en los diferentes tipos y tecnologías de dispositivos de entrada y salida. [1,2,4]
26-28 6 Taller sobre la ejecución de procesamiento secuencial y paralelo.[1, 2, 4]

Total de Horas: 10

Integración Curricular

Resultados de Programa (ABET)

(A) La habilidad para aplicar conocimientos de matemáticas, ciencias e ingeniería.

(B) La habilidad para analizar un problema e identificar los requerimientos necesarios para su definición y solución.

(C) La habilidad para diseñar, implementar y evaluar procesos y sistemas computacionales.

(D) La habilidad para funcionar en equipos de trabajo.

(E) El entendimiento de la responsabilidad profesional y ética.

(F) La habilidad para comunicarse efectivamente.

(G) La habilidad para analizar los impactos de la computación y la ingeniería en las personas, organizaciones y la sociedad.

(H) El reconocimiento de la necesidad de, y la habilidad para, continuar con el desarrollo profesional.

(I) La habilidad para usar las técnicas, destrezas y herramientas modernas para la práctica de la computación.

(J) La habilidad para aplicar los fundamentos y principios de las matemáticas y de la computación en el modelamiento y diseño de sistemas computacionales de manera que se demuestre comprensión de las ventajas y desventajas en las decisiones de diseño.

(K) La habilidad para aplicar los principios de diseño y desarrollo de software en la construcción de sistemas de diferente complejidad.

Relevancia del curso con los resultados de programa

Resultados de Programa
A B C D E F G H I J K
Relevancia 3 4 3 1 1 3 2 3

Escala: (1) baja relevancia - (5) alta relevancia.

Integración de objetivos, contenido y metodología del curso

Resultados del Programa Indicadores de Desempeño Objetivos/Contenido del Curso Actividades de aprendizaje Instrumentos de medición
(A) Aplicación de Conocimientos (A1) Identificar los fundamentos científicos y los principios de ingeniería que rigen un proceso o sistema. (Conocimiento) (A2) Resolver problemas relacionados con la disciplina y otras áreas por medio de la utilización de conocimientos, modelos y formalismos de las ciencias de la computación, las matemáticas y la ingeniería. (Aplicación) (A3) Analizar conjuntos de datos. (Análisis) Capítulo 1 Exposiciones del profesor, solución de ejercicios y lecturas Exámen, Taller y Tareas
(B) Análisis de problemas y requerimientos (B1) Describir procesos de manera declarativa ignorando los detalles de su implementación. (Comprensión). (B2) Utilizar el lenguaje propio de las matemáticas, la lógica y la ingeniería para especificar requerimientos funcionales y no funcionales de un sistema o proceso. (Aplicación). (B3) Sintetizar la información, evidencias y hechos necesarios para analizar un problema. (Análisis - Síntesis). Capítulo 2,3,4 Exposiciones del profesor, solución de ejercicios y lecturas Exámen y Proyecto
(C) Diseño (C1) Utilizar estándares de codificación en la implementación de componentes de software. (Aplicación). (C2) Identificar componentes, interacciones, relaciones e interfaces entre componentes. (Análisis). Capítulos 2,3,4 Exposiciones del profesor,Solución de ejercicios y lecturas Proyectos y tareas
(E) Responsabilidad profesional y ética (E2) Mostrar responsabilidad y un adecuado comportamiento profesional. (Valuación). Capítulos 2,3,4 Proyecto Proyecto
(F) Comunicación efectiva (F1) Producir textos de manera efectiva teniendo en cuenta la estructura, coherencia, flujo, ortografía y correcto uso del lenguaje. (Aplicación). (F2) Comunicarse de manera efectiva de acuerdo al público objetivo haciendo uso correcto del lenguaje, estilo, tiempo y expresión corporal. (Aplicación). (F3) Utilizar recursos gráficos para comunicar y expresar una idea. (Aplicación). (F4) Defender ideas con precisión y claridad. (Evaluación). Capítulos 2,3,4 Proyectos y tareas Presentaciones orales y reportes escritos
(I) Uso de herramientas y técnicas (I1) Utilizar herramientas de desarrollo de software. (Aplicación). (I2) Utilizar herramientas de diseño, modelamiento y simulación. (Aplicación). (I3) Combinar herramientas de software y hardware para resolver un problema. (Síntesis). (I4) Demostrar flexibilidad para adaptarse a diferentes paradigmas y lenguajes de programación. (Valuación). Capítulos 2,3,4 Laboratorios y lecturas Proyecto y tareas
(J) Modelamiento y diseño de sistemas computacionales (J2) Relacionar conceptos y principios teóricos para la resolución efectiva de un problema. (Síntesis). (J4) Evaluar decisiones de diseño basándose en principios matemáticos y de computación. (Evaluación). Capitulos 2,3,4 Laboratorios y Lecturas Exámen, Proyecto,prácticas de laboratorio y tareas
(K) Desarrollo de software (K2) Implementar e integrar componentes de software respetando los criterios de diseño. (Aplicación). Capitulos 2,4 Laboratorios y lecturas Exámen, Proyecto,prácticas de laboratorio y tareas

Contribución al Desarrollo de Competencias (CNA)

Resultados de Programa
A B C D E F G H I J K
Ciudadanía U
Comunicación escrita E
Lectura crítica E
Inglés U
Razonamiento cuantitativo E E E E E E

E- Se evalúa. U - Se usa

Contribución a los objetivos educacionales

La Carrera de Ingeniería de Sistemas y Computación plantea los siguientes objetivos educacionales, El estudiante graduado de la carrera será capaz de:

  1. EO1.Ejercitar la práctica de la Ingeniería de Sistemas y Computación profesionalmente.
  2. EO2.Diseñar y operar sistemas de computación que contribuyen a la solución de problemas relacionados a la disciplina, otra área de la ciencia y la ingeniería u otras disciplinas.
  3. EO3.Contribuir al bienestar de las comunidades desde posiciones prominentes en la industria, academia, sector público o como un emprendedor.
  4. EO4.Ser distinguido por su bases sólidas en computación, su sentido de ciudadanía responsable, su profesionalismo y liderazgo.
  5. EO5.Continuar su desarrollo profesional o involucrarse en estudios de posgrado.
Resultados de Programa
A B C D E F G H I J K
EO1X X X X X
EO2 X X X X X X
EO3 X X X
EO4 X X X X
EO5 X

Recomendaciones del Director del Programa

Reglas del curso

Calificación y Balance de Evaluación del Curso

Instrumento Porcentaje A B C D E F G H I J K
Parcial I 20 % 10 % 5 % 5 %
Parcial II 20 % 10 % 5 % 5 %
Proyecto 30 % 10 % 5 % 5 % 5 % 2 % 3 %
laboratorio 15 % 5 % 5 % 3 % 2 %
Taller y Tareas 15 %5 % 5 % 5 %

Uso de material en exámenes

Esta permitido el uso de material impreso para referencia específico (tablas o listados de conjunto de instrucciones) y calculadoras. No esta permitido el uso de computadores personales portátiles o móviles.

Asistencia

Obligatoria.

Bibliografía

  1. Hennessy, John L. and Patterson, David A., Computer organization and design: the hardware,software 5th ed, Elsevier., 2013
  2. Hennessy, John L. and Patterson, David A., Computer architecture : a quantitative approach, Fifth Edition. Morgan Kaufmann, 2011
  3. Floyd, Thomas L. FUNDAMENTOS DE SISTEMAS DIGITALES 9a ed., PEARSON EDUCACIÓN S.A., Madrid, 2006
  4. Null, Linda M.; Lobur, Julia, The essentials of computer organization and architecture, Third edition, Jones and Bartlett Publishers, Inc. 2012
  5. Victor P. Nelson et al., Digital Logic Circuit Analysis and Design, Prentice-Hall, 1995
  6. Notas de Clase
  7. ACM Digital Library
  8. IEEE Xplore

Instalaciones

Salón de clase con computador y proyector. Laboratorio de Ingeniería de Sistemas y Computación. Laboratorio de Ingeniería Electrónica.

Material de este semestre

 
materias/logicadigitallenguajemaquina.txt · Última modificación: 2016/08/24 23:09 por jsanchez
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki