9/22/2021

Buses de tarjeta madre.

 

·       Tipo dedicado

Trata la memoria de manera distinta que, a los periféricos, (utiliza un bus especial) al contrario que el bus único que considera ambos como posiciones de memoria. Este bus utiliza el bus dedicado tiene 4 componentes fundamentales estos son:

 - Intercambio de info entre la CPU y los periféricos. (Datos)

 - Lleva información referente al estado de los periféricos. (Petición de interrupciones, control)

 - Identifica el periférico referido. (Direcciones)

 - Temporiza las señales de reloj. (Sincronización)

 

·       Tipo Multiplexado

Este es un sistema de interconexión entre componentes electrónicos – normalmente unidades de control o sensores inteligentes – que consiste en que una sola línea (bus) circulan diversas informaciones en forma de señales digitales o codificadas.

 -Trabaja en modo de recepción recibe la trama y extrae los datos para el procesador.

 - Interface de emisión convierte la trama binaria en niveles de tensión propios de cada cable del bus.

 -Interface de recepción consta de un amplificador diferencial que compara las tensiones de los dos cables del bus y efectúa la conversión en una señal lógica.

 

 

·       Método de arbitraje

·       Centralizado o Distribuido

-Arbitraje Centralizado: Es un esquema un único dispositivo de hardware es responsable de asignar tiempos en el bus. Como característica principal se podría decir que existe un único dispositivo que signa tiempos de bus denominado controlador del bus, este puede estar separado o en el mismo procesador.

Las ventajas de este método son:

 -Sencillez implícita

 -Se pueden añadir tantos maestros como se quieran 

Desventajas:

 -La propagación de señal entre los dispositivos que intentan acceder al bus es lenta

 -Tiene una prioridad fija lo que significa que si un maestro falla los que tengan menor prioridad se verán afectados y no tendrán acceso al bus.

 

-Arbitraje Distribuido: En este tipo no existe un controlador central, lo que implica que cada módulo contiene una determinada lógica para controlar el acceso a los módulos que interactúan conjuntamente para compartir el bus. Existen dos formas de arbitrar el bus.

Arbitraje distribuido por auto selección: Se emplean múltiples líneas de petición de bus, pero ahora cada dispositivo determina de forma independiente si él es el solicitante de mayor prioridad sin necesidad de un árbitro. La desventaja reside en que el número de masters, que pueden alojarse por línea de arbitrajes existentes es limitado.

Arbitraje distribuido por detección de colisión: Cada dispositivo solicita de forma independiente el bus. Una vez detectada la colisión se aplica un esquema que determine el dispositivo que será maestro de bus entre las partes en colisión.

 

 

 

·       Temporización

Este término hace referencia a cómo se coordinan los eventos en el bus.

·       Síncrono o Asíncrono.

Síncrona: Los eventos en el bus están determinados por el ciclo de reloj. Este bus incluye línea de reloj a través de la que se transmite una señal de sincronización. (Los dispositivos utilizan unos tiempos prefijados por un reloj.

  -Reloj

  -Inicio

  -Lectura

  -Líneas de dirección

  -Líneas de datos

  -Reconocimiento

Ej. El procesador pone una orden de lectura al comienzo del segundo ciclo (lectura), El módulo de memoria copia la info. De las líneas de datos durante el tercer ciclo de reloj (escritura).

Asíncrona: Si no hay un reloj que determine el fin y principio de siguiente evento, al no haber una señal que determine esto en el tiempo de actualización, la presencia de un evento en el bus es consecuencia, y depende, de que se produzca un evento previo que indique que una fase ha terminado y se puede proceder a la siguiente fase de acción.

 -MSYN

 -SSYN

 -Lectura

 -Líneas de dirección

 -Líneas de datos

En este caso las señales que permiten saber la lectura/reconocimiento son las que funcionan como señales de sincronización.

 

·       Anchura del bus de Datos y Direcciones

Datos: Esta se refiere a la cantidad de líneas que posee. Se relaciona con el rendimiento del sistema. Mientras más ancho este puede transmitir mayor cantidad de bits en paralelo.

Direcciones: Dependiendo del ancho el bus de direcciones, mayor va a ser la cantidad de direcciones posibles utilizadas para direccionar memoria y dispositivos de E/S.

 

 

·       Tipo de transferencia de datos

Existen dos tipos de transferencias de buses:

 -Serie: Este bus transfiere los datos de bit a bit. Tiene un único cable que transmite la información.

 -Paralelo: Permite transferir varios bits simultáneamente.

·       Lectura

Cuando se realiza la lectura de datos, se refiere a que el Master busca y toma el dato, mientras que interactúa con el Slave para encontrar el dato el dato en el bus y así esta confirma al Master que el bus esta libre para ingresar nuevos datos.

·       Escritura

En este caso el Master indica al Slave que hay un dato para que lo tome y este deje el bus libre.

 

·       Lectura-Modificación-Escritura.

Es una lectura seguida inmediatamente de una escritura en la misma dirección. La dirección se proporciona una sola vez al comienzo de la operación. El objetivo es primordial de esta posibilidad es proteger los recursos de memoria compartida en un sistema con multiprogramación.

https://drive.google.com/file/d/1uoIS8tL8lGwTjwyB2OcBffLrVGsSfqIS/view?usp=sharing

Questionario

 

1 ¿Qué problema detecta Neumann en la ENIAC?

Que esta debía ser programada manualmente, configurando los interruptores, conectando y desconectando cables, además de tener una falta de fiabilidad.

2 ¿Cuál sistema de numeración utilizaba la ENIAC y cual la IAS?

La ENIAC utilizaba un sistema de numeración sistema de numeración decimal en lugar del binario actual, mientras que la IAS utilizaba el sistema binario con palabras de 40 bits, capaz de almacenar 2 instrucciones de 20 bit en cada palabra.

3 ¿A qué se refiere el concepto de “programa almacenado”?

Es una memoria direccionable con una línea de retardo en la cual se almacenan los datos y los programas en el dispositivo.

4 ¿Qué características tiene la máquina IAS?

-          Memoria principal que almacena tanto datos como instrucciones

-          Unidad aritmético-lógica (ALU) capaz de hacer operaciones con datos binarios.

-          Una unidad de control que interpreta las instrucciones en memoria y provoca su ejecución.

-          Un equipo de entrada salida (E/S) dirigido por la unidad de control.

 

5 ¿Cuáles son los componentes principales de la máquina IAS?

-          Unidad aritmético lógica (ALU)

-          Memory Buffer Register (MBR)

-          Program computer (PC)

-          Memory Adress Register (MAR)

-          Instruction Register (IR)

-          Instruction Buffer Register (IBR)

-          Unidad de Control

-          Memoria

-          Multiple Quotient (MQ) y Acumulador (AC)

-          Equipo de entrada/salida

6 ¿A qué se refiere el término “palabra de memoria”?

Es un grupo de 1 y 0 que pueden representar un número, una instrucción, caracteres alfanuméricos o diversos tipos de información en código binario.

7 ¿Qué se almacenaba en la memoria de la IAS?

Se almacenaban los datos binarios e instrucciones del procesador, además de las “palabras” que era como registraba los datos la IAS.

8 ¿Qué formato tenían las instrucciones de la IAS?

Estaban en uno de los lenguajes máquina, datos binarios.

 

9 ¿Cuál es la principal tarea de la unidad de control de la IAS?

Interpretar las instrucciones, controlando las diferentes ALUs y unidades de ejecución del procesador, además de captar y decodificar las instrucciones para escribirlos resultados en los registros, caches o en la dirección correspondiente de la RAM.

10 ¿Cuál es la principal tarea de la ALU en la IAS?

Su principal tarea es realizar las operaciones aritméticas y lógicas con datos binarios.

11 ¿Qué es el registro de instrucción?

Este es aquel que ayuda a almacenar las instrucciones que se están ejecutando dentro del computador.

12 ¿Qué tipo de instrucciones incluye la IAS?

Incluye 21 instrucciones agrupadas en 5 clases:

-          Transferencia de datos

-          Salto incondicional

-          Salto condicional

-          Aritmética

-          Modificación.

https://drive.google.com/file/d/1Y28cOVx5dAKMb6_YMGNYWCmjykn1eZYg/view?usp=sharing

Interrupciones

 

¿Qué es una interrupción?

Es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina (rutina de tratamiento) de servicio de interrupción, las cuales son ocasionadas por una señal externa y no por una instrucción del programa.

Tipos de interrupciones

Interrupciones de Hardware. Estas se producen en cualquier momento, sin importar lo que este haciendo el CPU. Son asíncronas al procesador.

Excepciones. Estas al contrario de las Interrupciones de Hardware se producen síncronas de las acciones de procesador.

Interrupciones por Software. Estas son generadas por un programa en ejecución. Estas son generadas.

https://drive.google.com/file/d/1W11Tq8bq5MJAIL5AFMykHtTj2lpqA3EA/view?usp=sharing

¿Conoces las más importantes arquitecturas de computadoras?

 ·   Arquitectura Von Neumann

 

Esta arquitectura se caracteriza por tener un CPU (central de proceso) que esta conectada a una única memoria donde se guardan las instrucciones del programa y los datos, estos se guardan en una unidad que esta determinada por el ancho del bus, el cual comunica la memoria con la CPU. Es por eso que un microprocesador de 8 bits con un bus de 8 bits deberá manejar datos e instrucciones de una o más unidades de 8 bits de longitud. Si se debe acceder a una instrucción que sea un poco más grande que esta cantidad se deberá realizar un nuevo acceso a la memoria; Gracias a esto existe una limitación de longitud en las instrucciones por el bus que hace que se deban realizar varios accesos a la memoria para poder buscar instrucciones complejas, esto limita la velocidad pues no se puede acceder simultáneamente a ambos si no que se debe superponer ambos tiempos de acceso.

 

En un ordenador, la novedad radical reside en que el programa, es decir la secuencia de operaciones a realizar, está previamente almacenado en la memoria. A eso se le ha llamado precisamente "arquitectura Von Neumann".

 

 

·        Arquitectura Harvard

 

Esta arquitectura se caracteriza por tener la unidad CPU (central de proceso) conectada a dos memorias una que almacena las instrucciones del programa (Memoria de Programa) y otra que solo almacena datos (Memoria de Datos). Estas dos memorias son totalmente independientes, lo que hace que estas puedan ser de distintos anchos, esto ayuda a que las instrucciones tengan solo una posición de memoria de programa de longitud, además de que al ser totalmente independiente hace que el tamaño de las instrucciones no este relacionado con los datos, lo cual ayuda a que el CPU acceda a estos para completar la ejecución de una instrucción, mientras que al  mismo tiempo lea las siguientes instrucciones y la ejecute; por lo tanto esto optimiza la velocidad y ayuda a que la instrucción ocupe solo una posición de memoria en el programa haciendo el programa más corto, sin embargo es importante poner instrucciones especiales para poder acceder a tablas de valores constantes que pueda ser necesario incluir en ellos programas.

 

Esta arquitectura permite llevar simultáneamente dato e instrucciones a la vez.

 

 

·      Explica desde su punto de vista, que tan parecidas son y cuales sus diferencias.

 

Ambas son parecidos ya que usan bastantes cosas parecidas, o al menos tienen un mismo concepto base, usando el CPU y memoria/s además de usar buses para poder conectarse con estas. Las diferencias más grandes son la división de memorias ya que mientras que la de Harvard tiene dos memorias permitiéndolo tener más rapidez la de Von Neumann solo tiene una memoria lo que hace que esta sea más lenta. En mi opinión esta pequeña o grande diferencia es sumamente importante ya que hace una diferencia a la hora de utilizar nuestra máquina sobre todo teniendo en cuenta la necesidad de rapidez de hoy en día.
https://drive.google.com/file/d/1Y28cOVx5dAKMb6_YMGNYWCmjykn1eZYg/view?usp=sharing

¿Qué es una computadora?

 

·      Tres definiciones de que es una computadora, de tres autores diferentes.

 

 “Es una máquina diseñada para aceptar un conjunto de datos de entrada, procesarlos y obtener como resultado un conjunto de datos de salida.” Garrido (2006)

 “Es un dispositivo electrónico capaz de “procesar información”. Esto se realiza mediante instrucciones específicas dadas por un operador humano, estas instrucciones están contenidas en un programa también llamado software. Debe quedar claro entonces que un computador no es más que una máquina que realiza una a una las instrucciones que se le impartan o entreguen, sin considerada si son erróneas, o moralmente censurables”. Guevara (2006)

“Máquina electrónica capaz de realizar un tratamiento automático de a información y de resolver con gran rapidez problemas matemáticos lógicos mediante programas informáticos.” RAE (2005)


·      Historia de los lenguajes de programación: lenguajes de alto nivel y lenguajes debajo nivel.

Los lenguajes de programación se dividen en el lenguaje de alto nivel y en el de bajo nivel, el de alto nivel es aquel que pueden ser entendido por nosotros (Se usa algún idioma o algo así) mientras que los de bajo nivel son aquellos de los cuales es difícil o casi imposible entender como el código binario.

Donde surge la historia de los lenguajes de programación, este comienza (según la mayoría de los autores) cuando Charles Babbage inventó la primera computadora mecánica en 1822, su programación era a base de engranajes para que así se ejecutaran los cálculos.

-       En el año 1942 fue construido ENIAC, este lenguaje se programa con interruptoras y precisaba reescribir el sistema entero para cada nuevo programa.

-       Más adelante en el año 1945 se desarrollo una técnica para poder indicar instrucciones complejas y así controlar el hardware simple.

-       Mientras que en 1957 apareció un lenguaje muy importante FORTRAN (Formula Translation). Este fue el primer lenguaje de programación de alto nivel.

-       Un año después (1958) se creo otro programa llamado LISP (Proceso de lista) que fue diseñado para la investigación artificial.

-       Es así como 10 años después (1968) se creo otro lenguaje de programación importante llamado PASCAL, que fue usado como uno de los mejores lenguajes para enseñar a programar a los alumnos.

-       Tiempo después en 1972 se crea Lenguaje C, creado para sistemas Unix (Este fue el predecesor de muchos lenguajes de la actualidad).

-       Fue así como para 1980 se creo un derivado del Pascal llamado Ada.

-       En 1983 se creo una extensión del lenguaje C, con mejoras tales como clases, funciones virtuales y plantillas “C++”. En este mismo año salió otra ampliación de C, que se adiciona a la funcionalidad de mensajes de paso basados en el lenguaje Smalltalk.

-       Unos cuatro años después apareció Perl creado para informes en sistemas Unix.

-       Después en 1991 llego Python, que fue creado para apoyar una variedad de estilos de programación y hacerlo divertido de usar.

-       Este lenguaje fue diseñado en 1993 para la programación productiva y agradable, influenciado por Perl, Ada, Lisp, etc. Llega Ruby.

-       Unos dos años después (1995) llega Java funciona como multiplataforma y fue creado como un proyecto de televisión interactiva. Durante este mismo año se creó PHP (Personal Home Page) usados para la creación de páginas web dinámicas; Por último, este mismo año llego Java Script creado para ampliar las funcionalidades de las páginas web, permitiendo a los usuarios utilizar formularios de presentación, validación, interactividad, animaciones, seguimiento de la actividad del usuario, etc.

 Por último, veremos unos ejemplos de lenguajes de bajo nivel, de alto nivel y de medio nivel.

Lenguaje de bajo nivel:

-       Binario (Lenguaje máquina)

-       Assembler x86, JMP y MULT (Lenguaje ensamblador)

Lenguaje de alto nivel:

-       Java

-       Perl

-       Python

-       C++

-       Fortran

-       PHP

Lenguaje de medio nivel:

-       C

-       Basic

 

·      Qué estudia la Arquitectura de Computadoras.

La arquitectura de las computadoras estudia la situación de los componentes de una computadora y permite determinar las diversas posibilidades de un sistema informático, con una determinada configuración, es decir estudia el modelo y la descripción funcional de los requerimientos e implementaciones de las diversas partes de la computadora. La parte básica de este estudio esta conformado por un procesador, memoria RAM, disco duro, dispositivos de entrada/ salida y software.

https://drive.google.com/file/d/1Gk-eP1Wufw7ccCTxNuuIviIqhtHOdCIs/view?usp=sharing