Você está na página 1de 113

UNIVERSIDAD CONTINENTAL VIRTUAL

MANUAL AUTOFORMATIVO

ASIGNATURA
Organización y Arquitectura del Computador

Autor
Pedro Yuri Marquez Solis
ÍNDICE

ÍNDICE
INTRODUCCIÓN
ORGANIZACIÓN DE LA ASIGNATURA
Resultado de aprendizaje de la asignatura
Unidades didácticas
Tiempo mínimo de estudio
UNIDAD I: EVOLUCIÓN Y FUNDAMENTO DE COMPUTADORES
Diagrama de organización de la unidad
Organización de los aprendizajes
Tema N° 1: Evolución y funcionamiento del Computador
1. Evolución de los computadores
1.1. La primera generación
1.2. La segunda generación
1.3. La tercera generación
1.4. La cuarta generación
1.5. La quinta generación
2. Clasificación
2.1. Por su potencia de procesamiento
2.2. Clasificación según su funcionamiento
3. Arquitecturas de Jhon Von neumman y Hardward
3.1. Arquitectura Jhon Von Neuman
3.2. Arquitectura hardvard
4. Ciclo de captación y ejecución
4.1. Descripción
5. Ciclo de instrucción: Diagrama de estado
6. Ciclo de instrucción e interrupción
6.1. Tipos de Interrupciones
6.2. Las Interrupciones y el ciclo de instrucción
7. Programación en lenguaje máquina: Elementos de instrucción máquina, tipos de operan-
dos e instrucciones
7.1. Formato de una Instrucción
7.2. Funcionamiento del Programa

Lectura seleccionada N.° 1


Actividad N.° 1
Tema N.° 2. Aritmética binaria y lógica digital
1. Las tres funciones lógicas básicas
2. Aritmética Binaria con enteros: negación, suma y resta, Multiplicación y división, despla-
zamiento izquierda y derecha.
3. Representación en punto flotante
4. Circuitos Lógicos digitales básicos
4.1. Clasificación

Lectura seleccionada N.° 2


Actividad N.° 2
Glosario de la unidad I
Bibliografía de la unidad I
Autoevaluación N.° 1
Unidad II. Memoria y Dispositivos de Entrada Salida
Tema N.° 1: El computador electrónico digital y la memoria
1. Analógico Vs Digital
1.1. Sistemas analógicos
1.2. Los Sistemas Digitales (SD)

2
2. Estructura Genérica de un sistema Digital
3. Organización de la memoria: Jerarquía y Tipos
4. Memoria Cache
5. Memoria Virtual

Lectura seleccionada N.° 1


Actividad N.° 1
Tema N.° 2: Entrada y salida
1. Operaciones de Entrada/Salida
2. Técnicas de comunicación con periféricos
2.1. E/S programada (Encuesta o pooling).
2.2. E/S por Interrupciones
2.3. Entrada salida por DMA (Direct Memory Access)
3. Administración de dispositivos: Placas principales, Chipsets

Lectura seleccionada N.° 2


Actividad N.° 2
Glosario de la unidad II
Bibliografía de la unidad II
Autoevaluación N.° 2
Unidad III. Organización del Procesador
Tema N.° 1: Organización y arquitectura x86
1. Organización del CPU: Características clave de procesadores
2. La Arquitectura X86: Registros

Lectura seleccionada n.° 1


Actividad N.° 1
Tema N.° 2: Arquitectura ATMega: AVR
1. Descripción del ATMega 328 Modelos y Características
2. Instalación del software
3. Introducción al Entorno de Desarrollo de Arduino
4. Conocimiento del lenguaje Arduino
5. Estructuras de control. Operadores y Tipos de dato
6. Entradas y salidas analógicas y digitales
7. El monitor serial
8. Manejo de Librerías y sensores

Lectura seleccionada n.° 2


Actividad N.° 2
Glosario de la unidad III
Bibliografía de la unidad III
Autoevaluación N.° 3
Unidad IV. Procesador y su entorno
Tema N.° 1: Arduino, C# y Motores
1. Uso de C# con Arduino.
2. Manejo de motores: Servo, DC y Motor de pasos.

Lectura seleccionada N.° 1


Actividad N.° 1
Tema N.° 2: Comunicación inalámbrica
1. Comunicación por bluetooth
2. Evaluando la performance del sistema

Lectura seleccionada N.° 2


Actividad n.° 2
Glosario de la unidad IV
Bibliografía de la unidad IV
Autoevaluación N.° 4
Anexos

3
INTRODUCCIÓN

Organización y Arquitectura del Computador es una asignatura teórico práctica, di-


señada para la modalidad a distancia; su intención es proporcionar al estudiante, las
herramientas indispensables para generar un aprendizaje autónomo, permanente y
significativo.

Busca que como estudiante seas capaz de de implementar soluciones a problemas


específicos, que consideran arquitectura, rendimiento y costos de un computador
diseñando estrategias que le permitan afrontar satisfactoriamente sus tareas de
aprendizaje. Configura un aprender a aprender a través del reconocimiento de las
habilidades de aprendizaje y la utilización de estrategias, atendiendo las necesidades
y características de las actividades personales y académicas que pueda afrontar en
esta modalidad.
En general, los contenidos propuestos en el manual auto formativo, se dividen en IV
unidades: Evolución y Fundamento De Computadores, Memoria y Dispositivos De
Entrada Salida, Organización Del Procesador y finalmente el Procesador y su Entorno.

Para afrontar con éxito tus estudios, te recomendamos que desarrolles una perma-
nente lectura de estudio, de los contenidos desarrollados y de los textos selecciona-
dos que amplían o profundizan el tratamiento de la información junto a la elaboración
de resúmenes y una minuciosa investigación vía Internet, específicamente en sitios
especializados. El desarrollo del manual se complementa con autoevaluaciones, que
son una preparación para la prueba final de la asignatura.

Organiza tu tiempo para que obtengas buenos resultados, la clave está en encontrar
el equilibrio entre tus actividades personales y las actividades que asumes como es-
tudiante. El estudio a distancia requiere constancia, por ello es necesario encontrar
la motivación que te impulse a hacer mejor cada día mejor.
Deseándote éxitos.

El autor

4
ORGANIZACIÓN DE LA ASIGNATURA

RESULTADO DE APRENDIZAJE DE LA ASIGNATURA

Al término de la asignatura el estudiante será capaz de implementar soluciones a


problemas específicos, que consideran arquitectura, rendimiento y costos de un
computador

UNIDADES DIDÁCTICAS

UNIDAD I UNIDAD II UNIDAD III UNIDAD IV


EVOLUCIÓN Y MEMORIA Y DIS- ORGANIZA- PROCESADOR
FUNDAMENTO POSITIVOS DE EN- CIÓN DEL PRO- Y SU ENTORNO
DE COMPU- TRADA SALIDA CESADOR
TADORES
Al finalizar la unidad, Al finalizar la uni-
Al finalizar la uni- el estudiante será ca- dad, el estudiante Al finalizar la
dad, el estudiante paz de elaborar un será capaz de unidad, el estu-
será capaz de ela- clasificador de memo- proponer e imple- diante será ca-
borar un programa ria, placas y procesa- mentar solucio- paz de imple-
en lenguaje má- dores, comparando nes a problemas mentar solucio-
quina aplicando criterios clave de ve- computacionales nes de software
aritmética binaria locidad de transferen- básicos que impli- que permitan in-
entera y los ciclos cia, capacidad de al- quen la utilización teractuar con un
de captación y eje- macenamiento y velo- de un CPU microcontrola-
cución. cidad de procesa- dor.
miento.

TIEMPO MÍNIMO DE ESTUDIO

UNIDAD I: UNIDAD II: UNIDAD III: UNIDAD IV:


Semana 1 y 2 Semana 3 y 4 Semana 5 y 6 Semana 7 y 8

16 horas 16 horas 16 horas 16 horas

5
UNIDAD I: EVOLUCIÓN Y FUNDAMENTO DE COMPUTADORES

DIAGRAMA DE ORGANIZACIÓN DE LA UNIDAD I

ORGANIZACIÓN DE LOS APRENDIZAJES


Resultado de aprendizaje de la Unidad I:
Al finalizar la unidad, el estudiante será capaz de elaborar un programa en lenguaje máquina
aplicando aritmética binaria entera y los ciclos de captación y ejecución.
CONOCIMIENTOS HABILIDADES ACTITUDES
Tema N° 1: Evolución y funciona-
1. Valora la impor-
miento del Computador tancia de la co-
1. Evolución de los computadores 1. Describe el funcio-
rrecta aplicación
1.1. La primera generación namiento y estructura
de la matemática
general de un compu-
1.2. La segunda generación binaria en el pro-
tador.
1.3. La tercera generación cesamiento
2. Fundamenta las ra- computacional
1.4. La cuarta generación
zones de los cambios
1.5. La quinta generación en el diseño de los
2. Clasificación computadores para lo-
2.1. Por su potencia de procesa- grar mejores presta-
miento ciones.
2.2. Clasificación según su funcio- 3. Explica el uso de
namiento los ciclos de captación
3. Arquitecturas de Jhon Von neum- y el empleo de las in-
terrupciones.
man y Hardward
3.1. Arquitectura Jhon Von Neuman
3.2. Arquitectura hardvard Actividad N°1
4. Ciclo de captación y ejecución
4.1. Descripción
5. Ciclo de instrucción: Diagrama de Actividad N°2
estado
6. Ciclo de instrucción e interrupción
6.1. Tipos de Interrupciones
6.2. Las Interrupciones y el ciclo de
instrucción Control de lectura N°
7. Programación en lenguaje má- 1
quina: Elementos de instrucción Evaluación del tema N°
máquina, tipos de operandos e ins- 1 y tema Nº 2 acerca de
trucciones Programas en lenguaje
máquina y Lógica Digital
7.1. Formato de una Instrucción
7.2. Funcionamiento del Programa

Lectura seleccionada N.° 1


Gómez Herrera, R. (1999). La inteligen-
cia artificial ¿Hacia dónde nos
6
lleva? ¿cómoves? (2), 8–11. Dispo-
nible en https://goo.gl/SYeF60

Tema N.° 2. Aritmética binaria y ló-


gica digital
1. Las tres funciones lógicas básicas
2. Aritmética Binaria con enteros: ne-
gación, suma y resta, Multiplica-
ción y división, desplazamiento iz-
quierda y derecha.
3. Representación en punto flotante
4. Circuitos Lógicos digitales básicos
4.1. Clasificación

Lectura seleccionada N.° 2

Carceler, V. (s.f.). Evolución de los siste-


mas informáticos. Disponible en
https://goo.gl/Na0q6I

Autoevaluación N.° 1

7
TEMA N° 1: Evolución y funcionamiento del Computador
Las computadoras tal como las conocemos y empleamos hoy, no tuvieron las fun-
cionalidades, tamaño, ni aplicaciones, pero si mantienen su estructura básica de
funcionamiento, es decir desde un supercomputador hasta un nanoprocesador to-
dos emplean el mismo principio, claro que las diferencias se hacen notar en ele-
mentos como la arquitectura del procesador, las líneas de comunicación, la capaci-
dad de memoria instalada, el número de núcleos operando y el tamaño de las ins-
trucciones.

1. Evolución de los computadores.


Algunos estudiosos consideran que los primeros intentos por Computar, calcular u
ordenar empleando máquinas datan desde la aparición del Abaco en la china aproxi-
madamente 1200 DC, incluso se tienen maquinas mecánicas como la de Blais Pascal
(TanenBaum, 1999), la cual únicamente sumaba y restaba, más tarde Charless Ba-
bbage diseñaría la Maquina Analítica una precursora de las actuales computadoras
ya que poseía memoria, Unidad de Computo, salida y entrada, lamentablemente la
tecnología de la época no le permitió completar su máquina pero su importancia
radica en que se trataba de una máquina programable. Posteriormente a inicios del
siglo XX, se emplearon maquinas que alimentadas por tarjetas perforadas ayudaron
a reducir el tiempo de conteo del Censo de 1890 en EE.UU, esta máquina creada por
Herman Hollerith permitió completar el conteo del censo en únicamente 6 semanas,
el censo anterior había tomado 7 años, fue el inicio de la IBM.
Es importante mencionar que nuestro estudio se orienta a computadoras electrónicas
digitales. Para facilitar el estudio de la evolución de las computadoras vamos a agru-
parlas en generaciones.
1.1. La primera generación
Estas computadoras empleaban tubos de vacío como compuertas, la programación
se realizaba netamente en lenguaje de máquina, lo que hoy llamaríamos Programa-
ción Cableada, prácticamente no se tenía Sistema Operativo, y los elementos de En-
trada, proceso y salida no estaban enlazados directamente. La forma de procesa-
miento era del tipo Uniprogramacion, significando esto que el programa en ejecu-
ción se adueñaba de los recursos del sistema hasta terminar.
Si agregamos que en esta generación las máquinas son grandes y costosas, de ele-
vado consumo eléctrico, requerían de gran disipación de calor y una limitada vida de
funcionamiento, entonces concluimos que su costo de funcionamiento requería que
se aprovecharan al máximo posible. En la Fig. Nº 1, vemos que los tiempos muertos
se daban debido a los procesos de Entrada o Salida, prácticamente eran inevitables.

Espera=
Tiempos
muertos

Figura Nro 1. Procesamiento en Uniprogramacion

Posteriormente varios estudiosos como Alan Turing, quien escribió un artículo en


1936, en él describía una máquina hipotética que llamó "máquina computadora uni-
versal", y que ahora es conocida como la "Máquina de Turing universal". Luego Turing

8
desarrolló un informe técnico detallado, Proposed Electronic Calculator, que describe
en detalle la ingeniería y la programación, su idea de una máquina que fue llamada
la Automatic Computing Engine (ACE), el secretismo mantenido durante muchas dé-
cadas acerca de los ordenadores Colossus le impidió manifestarlo. Se produjeron
varias implementaciones del diseño ACE de forma exitosa.
J. Presper Eckert y John Mauchly, quienes estaban desarrollando el ENIAC en la Es-
cuela Moore de Ingeniería Eléctrica en la Universidad de Pennsylvania, escribieron
sobre el concepto de “programa almacenado” en diciembre de 1943, pero un articulo
cientifico circulo con únicamente el nombre de Jhon Von Neumann quien estaba in-
volucrado en el Proyecto Manhattan.

1.2. La segunda generación


Esta generación se caracteriza por el uso del transistor, que se emplea en la cons-
trucción de las Unidades Centrales de Proceso. Es importante considerar que al ser
más pequeño, más barato y de menor consumo que los tubos al vacío, hizo que los
computadores puedan ser más rápidos, de menor tamaño y precio.

Las características de la segunda generación son las siguientes:

 Se programan en nuevos lenguajes llamados lenguajes de alto nivel.: Apare-


cen lenguajes como el FORTRAN (FORmula TRANslation), ALGOL (ALGOrithi-
mic Language) y COBOL (COmmon Business Oriented Language).
 Se facilitó la programación al emplear cintas perforadas y otras más por medio
de cableado en un tablero.
 Los programas eran hechos a la medida por un equipo de expertos: analistas,
diseñadores, programadores y operadores que se manejaban como una or-
questa para resolver los problemas y cálculos solicitados por la administra-
ción.
 Se emplea en gran medida la ejecución en lotes, lo que permite reducir los
tiempos muertos por Entrada/salida pero no eliminarlos.
 Aparece el concepto de multitarea, aunque no es todavía posible de aplicar
por la velocidad de los computadores de la época.

Figura Nro 2. Procesamiento en lotes

1.3. La tercera generación

Los avances en la electrónica permitieron que los CPUs se puedan construir con tran-
sistores que compartían una base única de silicio y a su vez se encontraban mucho
más cerca debido a su reducido tamaño, se emplean los circuitos integrados con
transistores cuyos tamaños rondan las micras.

Las características de esta generación fueron las siguientes:

 La velocidad de los CPUS ya permite emplear la multitarea, y mejor aún


se logra implementar el tiempo compartido. Mediante la multitarea se
tienen varios procesos en memoria y sólo uno se ejecuta, pero debido a
la velocidad de intercambio entre tareas del procesador el usuario no lo
9
nota y aparentemente está ejecutando varias tareas a la vez, esta forma
de procesamiento en realidad marca el inicio de la computación tal como
la conocemos al día de hoy.
 Para aprovechar al máximo posible los recursos de un computador se
emplean los sistemas operativos.
 Los sistemas operativos emplean el tiempo compartido entre cada uno
de los procesos activos, esto a su vez permite que el usuario tenga una
experiencia interactiva con el sistema.
 Aparece formalmente el sistema operativo UNIX. El lenguaje de progra-
mación C.

Figura Nro 3. Comparación de procesamiento multiprogramado y uniprogramacion

1.4. La cuarta generación


En esta generación aparecen los microprocesadores que son circuitos integrados de
alta densidad y con una velocidad impresionante. Una nueva forma de circuito Inte-
grado denominado CHIP es empleado en la fabricación de CPUs. Esta implementación
ofrece una mayor velocidad de cómputo que hizo realidad los entornos gráficos.

Figura Nro 4. Computador Apple II (Stengel, 2016)

1.5. La quinta generación

Esta generación se caracteriza por:

10
 Procesamiento en paralelo mediante el empleo de muchos núcleos de proce-
samiento, incluso especializando el procesamiento de cálculos matemáticos,
procesamiento gráfico y empleo de diversidad de sensores.
 Se emplean interfaces Hombre Máquina muy diversas, más apegadas al len-
guaje natural que incluyen sistemas de inteligencia artificial, redes neuronales
y sistemas expertos.
 Gran parte del procesamiento y almacenamiento se lleva a la nube.
 Aparecen una nueva economía basada en Aplicaciones y transacciones.

2. Clasificación

2.1 Por su potencia de procesamiento


a. Microcomputadoras:
Es una computadora que posee como CPU un microprocesador, con la caracte-
rística que su funcionamiento interno está basado en el uso de un microproce-
sador para conseguir una serie de prestaciones para cubrir la gama más baja
de necesidades en el mundo de la informática en lo referente a potencia, ma-
nejabilidad, portabilidad, precio, y otros. Son equipos monousuario. Es el tipo
de computador más difundido. Se pueden diferenciar a su vez dos configura-
ciones importantes dentro de este grupo: La Estación de Trabajo y la compu-
tadora personal.
Estación de Trabajo.
(Workstation): Es una microcomputadora de gran potencia pudiéndose
considerar la gama más alta de las microcomputadoras. Permite la co-
nexión en una red con una computadora de mayor potencia y que es
utilizada en los negocios o trabajos de ingeniería y diseñó grafico de
alta resolución.
Computadora Personal.
(Personal computer - PC): es una microcomputadora de fácil uso y
grandes prestaciones. Es el grupo de computadoras para el cual el
mercado tiene disponible la mayor gama de equipos hardware y de
aplicaciones software.
Computadoras Móviles.
Dentro de las computadoras personales, atendiendo a su tamaño y
prestaciones pueden diferenciarse otros modelos además del clásico
que son:
Portátil o transportable: que es una microcomputadora con carac-
terísticas que le adecuan para su fácil transporte, manteniendo las cua-
lidades de una computadora personal.
Laptop: Es una computadora personal más manejable, de tamaño pe-
queño y gran potencia. Su peso oscila entre 1 y 2 Kilogramos. No-
tebook: Similar al laptop, pero más pequeña, con menor peso. Permite
funciones de computadora personal con capacidad de cálculo y de
agenda evolucionadas para aplicaciones comerciales.
Notebook: Similar al laptop, pero más pequeña, con menor peso. Per-
mite funciones de computadora personal con capacidad de cálculo y
acceso al internet, agenda y aplicaciones comerciales.

b. Minicomputadoras:
Surgen en los años sesenta como una opción para realizar adquisición de datos o
controlar procesos industriales que resultaban muy costosos si se realizaban con
un mainframe; se requería ser operado por cuadrillas de operadores (situación que
incrementaba los costos), la minicomputadora permitía la interacción directa entre
la máquina y el usuario, con la consecuente disminución de costos. Cabe mencionar
que las primeras minicomputadoras fueron de 8 y 12 bits de longitud de palabra,
pero a finales de los setentas ya casi todas las minicomputadoras eran de 16 bits.

11
Con el auge de la tecnología y el surgimiento de las microcomputadoras, la mini-
computadora se convirtió en un sistema multiusuario o compartido que manipulaba
más dispositivos periféricos y contaba con memorias más grandes. Con la llegada
de las minicomputadoras de 32 bits estas características crecieron. A la minicompu-
tadora también se le conoce como sistema de rango medio.

c. Mainframes:
Aunque hay algunas confusiones sobre los límites entre las minicomputadoras y las
computadoras mainframes (también llamadas macrocomputadoras), éstas perma-
necen como una clase diferente de computadoras.
Una de las diferencias reside en la velocidad de las dos clases, no obstante, esto
puede resultar ambiguo ya que la instrucción típica en una máquina podría hacer
más que la instrucción de la otra, pero si consideramos que son comparables los
conjuntos de instrucciones de las computadoras mainframe y de las minis, entonces
la comparación es válida.

MacroComputadora Honeywell- Bull DPS 7 (Dunster, 1990)

d. Supercomputadoras:
Aunque el desempeño de los mainframes de propósito general continúa mejorando
sin descanso, existen algunas aplicaciones que están más allá del alcance de los
mainframes contemporáneos. En disciplinas como la aerodinámica, la sismología y
la física atómica, nuclear y de plasma, existen problemas que se caracterizan por
la necesidad de alta precisión y un programa que realice en forma repetitiva ope-
raciones de punto flotante sobre grandes arreglos de números, y que se engloban
en la categoría conocida como simulación de campo continuo Para manejar estos
tipos de problemas, se ha desarrollado la supercomputadora máquina capaz de
manejar miles de millones de operaciones de punto flotante por segundo y su costo
está en el rango los millones de dólares. Una supercomputadora puede hacer apli-
caciones de propósito general, pero su arquitectura esta optimizada para el tipo de
cálculo numérico que involucra arreglos. La supercomputadora tiene un uso limi-
tado y, debido a su precio, un mercado también limitado.

12
Figura Nro 5. : SuperComputador Cray xK7. (Cedrick, 2012)

2.2 Clasificación según su funcionamiento


a. Computador digital: recibe este nombre porque procesa datos, empleando
únicamente dos estados 0 y 1, Circuito abierto Circuito Cerrado, Verdadero y
Falso, operando con ellos en etapas diversas y sucesivas.

b. Computador analógico: tienen semejanza con instrumentos de medida tales


como amperímetro, voltímetro, termómetro, etc.; los cuales controlan la me-
dida de una magnitud de forma continua.

c. Computador híbrido: posee características de los dos anteriores, habitual-


mente, los cálculos los realizan de forma analógica mientras que la entrada y
salida de datos se hace de modo digital. La utilización del computador híbrido
es frecuente en el control de procesos industriales, en ellos las funciones prin-
cipales son controladas por un computador digital, mientras que la entrada de
datos y salida de resultados se hace empleando computadores analógicos co-
nectados con el digital Clasificación según la finalidad

d. De propósito general: cuando están dedicados a resolver cualquier tipo de


aplicación dependiendo del programa que se utilice, como por ejemplo los
computadores del hogar, se emplean para procesadores de texto, graficar, vi-
sualizar películas, comunicaciones mediante el Internet.

e. De propósito especial: cuando únicamente pueden resolver un tipo concreto


y particular de problemas como el computador de un coche o de una lavadora
Considerando que estudiamos computadores de uso general, debemos enten-
der que para lograr la generalidad se deben crear programas que se usen en
estos computadores, el problema reside en que el computador únicamente
procesa secuencias de unos y ceros, mientras que para el humano es muy
complicado seguir estas secuencias, por ello es común que se emplee en la
actualidad lenguajes de Programación de alto nivel

3. Arquitecturas de Jhon Von neumman y Hardward

3.1.Arquitectura Jhon Von Neuman

13
Figura Nro 6. Arquitectura Jhon Von Neumann. (Eguia, 2008)

John Von Neumann, propuso una arquitectura en la cual la CPU (Unidad Central de
proceso) está conectada a una única memoria donde se guardan conjuntamente
instrucciones (programas) y datos (con los cuales operan estos programas). Ade-
más, existe un módulo de entradas y salidas para permitir la comunicación de la
máquina con el exterior.

La longitud de las instrucciones está limitada por la longitud de los datos, por lo
tanto, el procesador se ve obligado a hacer varios accesos a memoria para buscar
instrucciones complejas. La velocidad de operación está limitada por el efecto cuello
de botella, que significa que un bus único para datos e instrucciones impide super-
poner ambos tipos de acceso.

Se basa en tres conceptos clave:


- Los datos y las instrucciones se almacenan en una sola memoria de lectura-
escritura.
- Los contenidos de esta memoria se direccionan indicando se posición, sin
considerar el tipo de dato contenido en la misma.
- La ejecucion se produce siguiendo una secuencia de instrucción tras
instrucción (a no ser que sicha secuencia se modifique explicitamente).
Por lo tanto tenemos dos opciones, que se aprecian en la Fig Nº 8

Figura Nro 7. Opciones de programación

1ra opción: Se pueden interconectar diversos componentes lógicos para realizar


una determinada función. El programa resultante es HARDWARE y se le denomina
HARDWIRED PROGRAM (programa cableado)
14
2da opcion: Emplear HARDWARE de uso general, este realiza distintas funciones
según las señales de control aplicadas En el segundo caso, se pueden generar
nuevos programas proporcionando nuevas señales de control

3.2.Arquitectura hardvard
Arquitectura moderna (1990 - hoy) Propone modificaciones en la arquitectura del
equipo físico y mejoras y nuevas prestaciones en el tiempo lógico. Un ejemplo en
el primer aspecto es la arquitectura Harvard, que está especialmente diseñada para
atacar las debilidades de la arquitectura Von Neumann, la solución, se construye
un procesador que está unido a dos tipos de memoria diferentes por medio de dos
buses independientes

Figura Nro 8. Arquitectura Harvard


(Eguia, Arquitectura de ordenadores, 2008)

La memoria de datos y la memoria de instrucciones son independientes, almace-


nándose en ellas los datos y el programa, respectivamente. Para un procesador de
tipo RISC “Computador de Juego de Instrucciones Reducido”, el conjunto de ins-
trucciones y el bus de la memoria de programa pueden diseñarse de manera tal
que todas las instrucciones tengan la misma longitud que la posición de la memoria
y lo mismo con los datos. Además, como los buses de ambas memorias son inde-
pendientes, la CPU puede estar accediendo a los datos para completar la ejecución
de una instrucción, y al mismo tiempo estar leyendo la próxima instrucción a eje-
cutar. Una forma de potenciar el aislamiento entre las instrucciones y los datos es
la incorporación de memorias caché ultra rápidas, que como sucede en los modelos
de Intel, una se encarga de guardar los datos que va a precisar la CPU y otra las
instrucciones.

4. Ciclo de captación y ejecución


La función básica que realiza un computador es la ejecución de un programa que
esta constituido por un conjunto de instrucciones almacenados en memoria. El
procesador es el que se encarga de ejecutar las instrucciones especificadas en el
programa. El procesador Lee(capta) la instrucción de memoria, interpreta la
instrucción captada y la ejecuta. La ejecución del programa es la repetición del
proceso de captación, interpretación y ejecución de la instrucción, lo que se
denomina ciclo de instrucción

15
Figura Nro 9. Ciclo de captación y ejecución. (Stallings, 2006)

4.1.Descripción
Al comienzo de cada ciclo la CPU capta una instrucción de memoria, esto empleando
un registro llamado Contador de programa(program counter) PC El PC posee la
dirección de la próxima instrucción a ejecutar El Procesador mueve la instrucción
apuntada por PC al Registro de Instrucción (RI) Se incrementa en 1 el contenido del
PC

6 1
>
4 2
3

5

Figura Nro 10. Componentes del computador: Esquema de 2 niveles. (Stallings, 2006)

Se interpreta la instrucción y se envían las órdenes de control. La isntruccion


interpretada puede ser de cuatro tipos(Proceso Memoria, Proceso- E/S,
Procesamiento de datos y Control)

En este caso el procesador pose un unico registro de datos llamado


acumulador(AC). Tanto las instrucciones como los datos sonde 16 bits. Así, es
conveniente organizar las memoria utilizando posiciones de 16 bits, o palabras. El
formato de instrucción indica que puede haber 24 = 16 codigos de operación
(codops) diferentes, y se pueden direccionar directamente hasta 2 12=4096(4K)
palabras de memoria.

5. Ciclo de instrucción: Diagrama de estado


El ciclo de ejecución de una instrucción podria requierir más de una referencia a
memoria o especificar una operación de E/S. La Figura 16 proporciona una vision
más detallada del ciclo de instrucción básico empleando la forma de un diagrama
de estados. Para un ciclo de instrucción dado, algunos estados pueden no darse y
16
otros pueden visitarse más de una vez. Los estados se describen a continuación:

1. Cálculo de la dirección de la instrucción (IAC, Instruction Address Calcula-


tion): Determina la dirección de la siguiente instrucción a ejecutar. Normal-
mente, esto implica añadir un número fijo a la dirección de la instrucción previa.
Por ejemplo, si las instrucciones tienen un tamaño de 16 bits y la memoria se
organiza en palabras de 16 bits, se suma 1 a la dirección previa.

2. Captación de instrucción (if, Instruction Fetch): La CPU lee la instrucción


desde su posición en memoria.

3. Decodificación de la operación indicada en la instrucción (IOD, Instruction


Operation decoding): Analiza la instrucción para determinar el tipo de operación
a realizar y el (los) operando(s) a utilizar.

4. Cálculo de la dirección del operando (OAC, Operand Address Calcularían): si


la instrucción implica una referencia a un operando en memoria o disponible
mediante E/S, determina la dirección del operando.

5. Captación de operando (OF, Operand Fetch): capta el operando desde memo-


ria o se lee desde el dispositivo de E/S.

Captura Ins- Captura Almacena


trucción Operando Operando

Calculo de Decodifica Calculo Efectúa Calculo de


dirección de Operación de Direc- Opera- Dirección
la Instruc- de Instruc- ción ción con Operando
ción ción Ope- los datos
rando

Instrucción Completa. Retorno para cadena


Captura de la Siguiente o vector de datos
Instrucción

Figura Nro 11. Diagrama de estados del Ciclo de Instrucción. (Stallings, 2006)

6. Ciclo de instrucción e interrupción


Los computadores poseen Mecanismos por los cuales los módulos pueden
“interrumpir” el procesamiento normal de la CPU, esto permite que el usuario o los
procesos no deban esperar demasiado tiempo para ser atendidos por el procesador.

Las interrupciones proporcionan una forma de mejorar la eficiencia del procesador


considerando que la mayoría de dispositivos de entrada/salida son mucho más
lentos que el procesador. Por ejemplo si el procesador está transfiriendo datos a
una impresora utilizando el esquema del ciclo de instrucción de la Figura 12.
Después de cada operación de escritura, el procesador tendrá que parar y
permanecer ocioso hasta que la impresora complete la escritura. La longitud de
esta pausa puede ser del orden de muchos cientos o incluso miles de ciclos de
instrucción que no implican acceso a memoria. Definitivamente esto es derroche en
el uso del procesador.

6.1.Tipos de Interrupciones
17
Tipo de Interrupcion Descripción
Programa Generada como resultado de la ejecucion de una
instrucción, Desbordamientos, divisiones por cero, intento
de acceder a un area de memoria que no le pertenece al
proceso.
Temporización Se generan por el reloj interno del sistema, para permitir
al Sistema Operativo llevar a cabo funciones de control.
Entrada/salida Se generan por un Controlador de entrada/salida
indicando la finalizacion de una operación con o sin
errores.
Fallo de hardware Generadas por un fallo en el hardware que podria ser en
memoria
Figura Nro 12. Clases de Interrupciones (Stallings, 2006)

6.2.Las Interrupciones y el ciclo de instrucción

Con el uso de interrupciones, el procesador puede dedicarse a ejecutar otras


instrucciones mientras se esta dando una operación de E/S. La secuencia es la
siguiente:

1. El programa de usuario requiere realizar una escritura(WRITE).


2. Se ejecuta el programa de E/S , el que está constituido solo por el código
de preparación y la orden de E/S.
3. Luego de ejecutar estas pocas instrucciones, el control se devuelve al
programa de usuario. Mientras tanto, el dispositivo externo está ocupado
aceptando el dato de la memoria del computador. Esta operación de E/S se
realiza concurrentemente con la ejecución de instrucciones del programa de
usuario.
4. Cuando el dispositivo externo está listo para aceptar más datos del
procesador, el controlador de E/S de este dispositivo externo envía una señal
solicitando interrupción al procesador. El procesador responde suspendiendo
la operación del programa que estaba ejecutando y salta a un programa,
conocido como gestor de interrupciones.
Cuando el procesamiento de la interrupción se completa, la ejecución
prosigue(Figura 13). Así, el programa de usuario no tiene que incluir ningún código
especial para posibilitar las interrupciones; el procesador y el sistema operativo son
los responsables de detener el programa de usuario y después permitir que prosiga
en el mismo punto.
Ciclo de cap- Ciclo de eje- Ciclo de inte-
tación cución rrupción

Interrupciones
inhabilitadas

Captación de Ejecución de Comprobación de


Inicio la siguiente la instrucción interrupción: in-
instrucción terrupción del
Interrupcio- proceso
nes habilita-
das

Parada

Figura Nro 13. Ciclo de Instrucción con interrupciones. (Stallings, 2006)

7. Programación en lenguaje máquina: Elementos de instrucción máquina, ti-


pos de operandos e instrucciones
Es importante recalcar que un computador entiende señales eléctricas, las que de-
nominaremos señales de control.
Emplearemos un computador hipotético con instrucciones de 4 bits, memoria de 16
posiciones las que son direccionables utilizando 4 bits.
18
En este caso únicamente se poseen las instrucciones mostradas en la tabla.

Numero de Sistema Instrucción


Instrucción Binario
1 0001 Niega el contenido del AC (Acumulador)
2 0010 Sumar el valor del acumulador con el valor de la dirección
indicada, y colocarlo en el AC(ADD)
3 0011 Copiar del acumulador a la Memoria (Store)
4 0100 Cargar de la memoria al acumulador (Load)

Cuando un programa inicia el PC por defecto posee el valor inicial 0000.


El estado de memoria con el programa para efectuar la suma de los valores 4 y 7 es
el que se muestra en la Fig Nº 14 .

Dirección Contenido de
de memoria la celda
0000 01001010
0001 00101011 Instrucciones
0010 00111100
0011
0100
0101
0110
0111
1000
1001
1010 0000100 Datos
1011 0000111
1100 0001011
1101
1110
1111
Figura Nro 14. Programa en lenguaje máquina

7.1.Formato de una Instrucción


Lo almacenado en memoria son instrucciones y datos, pero específicamente las ins-
trucciones tienen una estructura específica de la arquitectura del computador. Están
compuestas de 2 partes los “n” primeros bits son los que corresponden a la instruc-
ción mientras que los “m” últimos bits a la dirección de memoria donde operar. Exis-
ten instrucciones como la de negación que operan directamente en un registro y la
dirección de memoria que contenga no es considerada, por lo que se completa con
bits ceros.

0 1 0 0 1 0 1 0

Bits de Instruc- Bits de direc-


ción ción
Figura Nro 15. Formato de instrucción

7.2.Funcionamiento del Programa


Ciclo 1:
1. Se inicia el funcionamiento sabiendo que el valor del PC es 0000, por lo cual
se lee la dirección de memoria 0000, la cual contiene almacenado el valor:
01001010, el valor del PC se incrementa en 1 quedando como 0001 prepa-
rando el siguiente ciclo.
2. Se efectúa la captura de esta instrucción y se copia al IR(registro de instruc-
ciones) donde se interpreta considerando que los 4 primeros bits son la ins-
trucción en si, mientras los 4 últimos la dirección donde operar.

19
3. Para interpretar la instrucción 0100, esta es comparada con el Set de ins-
trucciones, la que indica que se trata de la operación de LOAD, lo que significa
que el valor almacenado en la dirección 1010 se copiará al registro acumu-
lador AC.
4. Se efectúa la copia al registro AC, con lo cual se ha completado la ejecución,
pero dejando en AC el valor 0000100(4).

Ciclo 2:

1. Se lee el valor del PC, el cual contiene 0001, por lo cual se lee la dirección de
memoria 0000, la cual contiene almacenado el valor: 00101011, el valor del
PC se incrementa en 1 quedando como 0010 preparando el siguiente ciclo.
2. Se efectúa la captura de esta instrucción y se copia al IR(registro de instruc-
ciones).
3. Para interpretar la instrucción 0010, esta es comparada con el Set de ins-
trucciones, la que indica que se trata de la operación de ADD, lo que significa
que el valor almacenado en la dirección 1011 se sumará al valor ya contenido
en el registro acumulador AC.
4. Se suman por tanto en binario los valores 0000100 (4) y 0000111(7), que-
dando en el AC 00001011 (11 en base diez) con lo cual se ha completado la
ejecución.

Ciclo 3:

1. Se lee el valor del PC, el cual contiene 0010, por lo cual se lee la dirección de
memoria 0010, la cual contiene almacenado el valor: 00111100, el valor del
PC se incrementa en 1 quedando como 0011 preparando el siguiente ciclo.
2. Se efectúa la captura de esta instrucción y se copia al IR(registro de instruc-
ciones).
3. Para interpretar la instrucción 0011, esta es comparada con el Set de ins-
trucciones, la que indica que se trata de la operación de STORE, lo que signi-
fica que el valor almacenado en el registro acumulador AC se debe copiar a
la dirección de memoria 1100.

4. Se efectúa la copia del valor 00001011 almacenado en el AC, hacia la dirección


1100 con lo cual se ha completado la ejecución.
LECTURA SELECCIONADA N.° 1

La inteligencia artificial ¿Hacia dónde nos lleva?


Gómez Herrera, R. (1999). La inteligencia artificial ¿Hacia dónde nos lleva? ¿cómoves?
(2), 8–11. Disponible en https://goo.gl/SYeF60

ACTIVIDAD N.° 1

Foro de discusión sobre la Inteligencia Artificial


Instrucciones
 Lee y analiza el tema N° 1 del manual.
 Ingresa al foro y participa con comentarios críticos y analíticos del tema refe-
rentes a la IA (Inteligencia Artificial), responde de acuerdo a la lectura Nro 1.
 Participa respondiendo las siguientes preguntas;
¿De que proviene el término Robot?
¿Qué podemos esperar en el futuro de la IA?”
20
TEMA N° 2: Aritmética binaria y lógica digital

Todo procesador posee una Unidad Aritmética lógica (ALU), quien realiza las ope-
raciones aritméticas y lógicas con los datos que se le proveen. En cambio, los demás
componentes tienen por misión suministrar datos al ALU, con tal que los procese y
se puedan recuperar los resultados.

El ALU y muchos otros componentes del computador se basan en el uso de disposi-


tivos lógicos simples que almacenan dígitos binarios y efectúan operaciones lógicas
booleanas elementales. Para ello se le proporcionan datos en registros, y en estos u
otros registros se almacena el resultado del procesamiento.

En las computadoras digitales los elementos de información, como las instrucciones,


números y símbolos, se codifican como señales electrónicas que casi siempre tienen
dos valores “0” o “1” sobre todo para un manejo más asequible al ser humano. Es
común que el 0 represente “apagado” o “falso” y el 1 corresponda a “encendido” o
“verdadero”.

1. Las tres funciones lógicas básicas.


Los aportes de Alan Turing establecieron los cimientos para que el álgebra de Bool
se pueda aplicar en las computadoras digitales, y precisamente la denominación
de Digital proviene de la forma de cálculo.
Todo está basado en tres funciones lógicas básicas que son: O, Y y la negación.

Función Operación Símbolo Tabla de Verdad

OR Permite efectuar la suma

AND Efectúa la multiplicación

Es la inversa, es decir, lo
que aparece en la salida
NOT
es lo contrario de lo que
aparece en la entrada.

2. Aritmética Binaria con enteros: negación, suma y resta, Multiplicación y


división, desplazamiento izquierda y derecha.
Suma en binario:
Las sumas 0 + 0, 0 + 1 y 1 + 0 son evidentes:

21
0+0=0
0+1=1
1+0=1
Pero la suma de 1+1, que sabemos que es 2 en el sistema decimal, debe escribirse
en binario con dos cifras (10) y, por tanto 1+1 es 0 y se arrastra una unidad, que se
suma a la posición siguiente a la izquierda. Veamos algunos ejemplos:

 0102 + 1012 = 1112 que es igual a 210 + 510 = 710


 0011012 + 1001012 = 1100102
 10110112 + 10110102 = 101101012
 1101110112 + 1001110112 = 10111101102

Sustracción en binario

Las restas 0 - 0, 1 - 0 y 1 - 1 son evidentes:

0–0=0
1–0=1
1–1=0
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad
prestada de la posición siguiente: 10 - 1, es decir, 210 – 110 = 1. Esa unidad prestada
debe devolverse, sumándola, a la posición siguiente. Veamos algunos ejemplos:

 1112 – 1012 = 0102


 100012 – 010102 = 001112
 110110012 – 101010112 = 001011102
 1111010012 – 1011011012 = 0011111002 48910 – 36510 = 12410

Restar en binario usando el complemento a dos


La resta binaria de dos números puede obtenerse sumando al minuendo el comple-
mento a dos del sustraendo. Veamos algunos ejemplos:

Primer ejemplo: 91 – 46 = 45
en binario: 10110112 – 01011102 = 0101101
Se dificulta cuando se acumulan los arrastres a la resta siguiente.
Esta misma resta utilizando el complemento a dos del sustraendo:
10110112 + 10100102 = 01011012
La operación a aplicar al sustraendo sería:
 Primero negar todos los Bits de 0101110 obteniéndose: 1010001
 Segundo: Sumar uno al resultado 1010001 +
1, obteniéndose:
1010010
este es el valor a emplear para la suma
 Tercero: Efectuamos la suma
1011011+
1010010
10101101
En el resultado sobra un bit, que se desborda por la izquierda. Pero, como el número
resultante no puede ser más largo que el minuendo, el bit sobrante se desprecia.

Multiplicación binaria
Debido a que los factores de la multiplicación sólo pueden ser CEROS o UNOS, el
producto sólo puede ser CERO o UNO. En otras palabras, las tablas de multiplicar del
cero y del uno son muy fáciles de aprender:

22
x 0 1
0 0 0
1 0 1

En un computador, la operación de multiplicar se realiza mediante sumas repetidas.


Pongamos un ejemplo:
10110x 2710 = 11001012 x 00110112 = 01010101001112 = 272710

División binaria
Muy similar al producto, porque no son posibles en el cociente otras cifras que no
sean UNOS y CEROS. El proceso es el siguiente: Para dividir dos números binarios se
resta al dividendo el divisor, hasta que el resultado de la resta sea menor que el
dividendo. El resultado es el resto y el número de veces que hemos efectuado la resta
es el cociente.
Por ejemplo:
Al dividir 48 entre 13.
4810 = 001100002 y 1310 = 000011012
El complemento a dos de 1310 es = 111100112
La operación está indicada en la tabla adjunta.
Dividendo Divisor Resto Cociente
001100002 + 111100112 = 001000112 000000012
001000112 + 111100112 = 000101102 000000102
000101102 + 111100112 = 000010012 000000112
000010012 + 111100112 = 111111002

El último resto es negativo por lo que el cociente es tres (000000112) y el resto es 9


(000010012)

3. Representación en punto flotante.

Es común tener que representar números muy pequeños o muy grandes, lo que im-
plica recurrir a un factor de escala para no tener que representar ceros.

Por Ejemplo

 0,0000000125=125*10-10=0,125*10-7
 23450000000=2345*107=0,2345*1011

La mayoría de las CPU tienen un coprocesador de coma flotante y todas ellas se


ajustan a la norma de coma flotante del IEEE Número 754 (1985).

El valor del número viene dado por:

V(X) = M*2E
Donde M es mantisa y E exponente de base 2.

23
Se dividen los n bits, disponibles para representar un dato, en dos partes, una para
la mantisa M (o fracción) y otra para el exponente E. Considerando que la mantisa
tiene una longitud de p bits y que el exponente la tiene de q bits, se cumple que n =
p + q.
La mantisa contiene los dígitos significativos del dato, mientras que el exponente
indica el factor de escala, en forma de una potencia de base 2.
Considera dos formatos básicos, el de simple y el de doble precisión, que se repre-
sentan seguidamente.

Precisión Simple Precisión Doble

Sm Exponente Mantisa Sm Exponente Mantisa


0 1 8 9 31 Bits empleados 0 1 11 12 63
Figura Nro 16. Formatos de Punto flotante

El exponente se representa en exceso a 127 para precisión simple y a 1023 en pre-


cisión doble.
La mantisa que se representa es la fracción que queda luego de desplazar la coma
detrás del primer 1. Este primer bit significativo de la mantisa que siempre es 1 no
se representa, esto permite representar un bit más. La coma fraccionaria de la man-
tisa se considera después de dicho 1 de la siguiente manera: 1,M.
Los valores de cada formato son los siguientes:
 (-1)s*1,M*2E-127 para 0<E<255 (Los valores para E= 0 y E=255 son especia-
les como lo veremos enseguida)
 (-1)s*1,M*2E-1023 para 0<E<2047
Se ha colocado la coma a la derecha del dígito más significativo, lo que significa que
la normalización es entre 1,0000... y 1,11111...
Ejemplo 1:
Supongamos que queremos representar el número 12,375 cuyo valor binario es:
1100,011
Para representarlo en coma flotante debemos expresarlo en la forma 1,M y ajustar
el exponente.
El cual será 1,100011 2 3, si lo expresamos todo en binario 1,100011 (10) 11
Ahora la representación es:
 Sm (Signo de mantisa) es 0 por ser positivo
 El exponente es 11 (3) que en exceso a 127 es 10000010
 La mantisa es 100011 (los valores detrás de la coma).

Sm Exponente Mantisa
0 10000010 10001100000000000000000

Si formateamos a los 32 bits en campos de 4 bits podemos expresarlos en hexade-


cimal de la siguiente manera:

0100 0001 0100 0110 0000 0000 0000 0000


4 1 4 6 0 0 0 0

Ejemplo 2:
Representar el número -0,005
Convertido a binario es -0,0000000101 = - 1,01 (10)-1000
El signo de mantisa es negativo por lo tanto el valor es 1
La mantisa 01
El exponente es - 8 +127= 119 en binario es 01110111

Sm Exponente Mantisa
1 01110111 01000000000000000000000

4. Circuitos Lógicos digitales básicos.


24
Un circuito digital es un sistema formado por un conjunto de dispositivos electrónicos
que reciben un cierto número de señales digitales de entrada, las procesan y generan
una o varias señales digitales de salida.
Cada señal digital puede tener solo dos valores posibles, representados por 0 y 1, si
un circuito dispone de un número n de señales digitales es posible codificar 2 n infor-
maciones diferentes.

4.1. Clasificación
Según las variables de las que depende la función que define el circuito existen dos
tipos de circuitos digitales: los circuitos combinacionales y los secuenciales.
Los circuitos digitales combinacionales son aquellos en los que la salida en un
instante determinado depende únicamente de la entrada en ese mismo instante (des-
preciando el tiempo que requiere el proceso de los datos de entrada). Un sistema de
alarma que se activase al detectar un movimiento sería una muestra de un circuito
digital combinacional, ya que la respuesta de la alarma dependería únicamente de la
entrada en cada instante.
Los circuitos digitales secuenciales son aquellos en los que la salida en un ins-
tante determinado depende de la entrada en ese instante y de todas las entradas
que se han producido desde la activación del circuito. Son, por tanto, circuitos con
memoria. Un dispositivo que contase las personas que entran en un establecimiento
comercial a lo largo del día sería un ejemplo de ello. La salida del dispositivo sería un
valor que no dependería solo de si pasa o no una persona, sino también del total de
personas que han pasado desde la apertura del establecimiento.

CIRCUITOS DIGITALES COMBINACIONALES


Los circuitos combinacionales se implementan bien a partir de las puertas lógicas
o como circuitos integrados diseñados previamente para realizar una tarea con-
creta de frecuente utilización.

Los paquetes con dos filas de terminales en el exterior e IC en el interior se


conocen técnicamente como paquetes duales en línea o DIP. Estos chips pueden
dividirse a grandes rasgos en clases basándonos en el número de compuertas
que contienen.

Circuito Descripción Numero de compuertas


SSI Integrado a pequeña escala 1 a 10 compuertas
MSI Integrado a mediana escala 10 a 100 compuertas
LSI Integrado a gran escala 100 a 100000 compuertas
VLSI Integrado a muy grande escala >100000 compuertas

Los circuitos combinacionales más frecuentes son: codificador, decodificador,


multiplexor, demultiplexor, sumador, restador y comparador.

CODIFICADOR Y DECODIFICADOR
Un codificador es un circuito con puertas lógicas combinadas de modo que, al acti-
varse una entrada, se activan las salidas dando una combinación de unos y ceros que
corresponden al código en binario del número decimal elegido a la entrada.
La función normal de un codificador consiste en convertir cualquier información digi-
talizada que entra en el sistema a un código binario equivalente. Según sean las
entradas posibles del codificador se distingue entre codificador con o sin prioridad.
En los codificadores sin prioridad solo es posible activar una de las entradas para que
la salida sea única. Por el contrario, los codificadores con prioridad priorizan la en-
trada de más peso sobre las demás en caso de producirse entradas simultáneas.
El decodificador realiza la función contraria a la del codificador. Con m entradas y 2
m salidas, cuando se activa una combinación binaria de entradas, se activa la salida
que corresponde en decimal a dicha combinación; siempre con la entrada de valida-

25
ción activada. Por ejemplo, si en los canales 3-2-1-0 de entrada se activa la combi-
nación 0110 en código binario, en la salida solamente se activará el canal 5, corres-
pondiente al número 6 expresado en código decimal.

Figura Nro 17. Circuito Codificador. (EDITORIAL, 2016)

La aplicación principal de los codificadores y decodificadores es pasar de un código a


otro, principalmente de binario natural a decimal, o viceversa, pero también pueden
aplicarse a códigos BCD (Binary Coded Decimal), hexadecimal, etc. Otra de las apli-
caciones de los decodificadores, en combinación con una puerta, es la generación de
funciones lógicas. También pueden utilizarse para disminuir las entradas y salidas de
un sistema de control de 2 m señales o canales.

MULTIPLEXOR Y DEMULTIPLEXOR
La función de un multiplexor es conectar una señal de entrada con una única señal
de salida mediante las denominadas entradas de selección, siempre que la entrada
de validación esté activada.

El multiplexor es el circuito lógico combinacional equivalente a un interruptor mecá-


nico giratorio de varias posiciones, tal como el componente que sirve para seleccionar
las bandas de un receptor de radio. Permite dirigir la información binaria procedente
de diversas fuentes a una única línea de salida, para ser transmitida a través de ella,
a un destino común. Disponen de: hasta 2n líneas de entrada de datos, una única de
salida y n entradas de selección; que habilitan y ponen en contacto uno de los ter-
minales de entrada de datos con el de salida.

El circuito combinacional integrado multiplexor, suele tener: 8 entradas de datos


(bits), 3 entradas de selección (address) y una única salida de datos. Por ejemplo
cuando en las entradas de selección está activa la combinación 010 Equivalente a la
entrada de información número 2, en la salida aparecerá el bit que en ese momento
haya en la entrada 2 es decir un 1, ya que esta es la entrada que hemos seleccionado
para comunicarla con la salida.

Figura Nro 18. Circuito Multiplexor (EDITORIAL, 2016)

El demultiplexor realiza la función inversa a la del multiplexor. Partiendo de una en-


trada de validación activada, la información de una única entrada de datos se conecta
a una de las múltiples salidas, direccionando la salida en función de la combinación
de las entradas de selección.

26
Una de las aplicaciones más interesantes de los multiplexores y demultiplexores es
la simplificación de líneas (conexiones) en los circuitos de control, lo que permite el
diseño de circuitos electrónicos complejos con pocos componentes y mínimo cone-
xionado entre los elementos de control y los actuadores.

Figura Nro 19. Esquema lógico de un demultiplexor. (EDITORIAL, 2016)

Los demultiplexores junto con los multiplexores se emplean para poder llevar varias
conversaciones telefónicas simultaneas por una misma línea, por lo que se reducen
significativamente los costes, y se simplifican muy sensiblemente el cableado de co-
nexiones.

Una aplicación de este tipo de circuitos se da por ejemplo en una comunicación tele-
fónica, cada persona escucha únicamente una fracción de lo que le dice la otra, pero
debido a características fisiológicas del oído humano, se consigue tener la sensación
de que la comunicación es continua cuando se hace rotar el equipo multiplexor-de-
multiplexor con una cadencia adecuada por encima de los 20 ciclos por segundo

Figura Nro 20. Aplicación del multiplexor y demultiplexor. (Aragonesa, 2016)

SUMADOR Y RESTADOR
Los sumadores binarios son circuitos aritméticos combinacionales que realizan la
suma de los dos números binarios que reciben en las entradas y dan el resultado en
la salida. El circuito tiene una entrada adicional de transporte, que suministra el aca-
rreo producido en una suma anterior y que genera, igualmente, un bit de suma y un
transporte para suministrarlo a una suma posterior. Los sumadores pueden combi-
narse para realizar multiplicaciones binarias.
Los restadores binarios son circuitos sumadores de n bits, en el que el segundo ope-
rador se convierte en número negativo.

Semisumador. Es un dispositivo capaz de sumar dos bits y dar como resultado la


suma de ambos y el acarreo. La tabla de verdad correspondiente a esta operación
sería:

Entradas Salidas
A B C S

27
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

Figura Nro 21. Tabla de verdad y estructura Semisumador. (Aragonesa, 2016)

Sumador completo. Presenta tres entradas, dos correspondientes a los dos bits que
se van a sumar y una tercera con el acarreo de la suma anterior. Y tiene dos salidas,
el resultado de la suma y el acarreo producido. Su tabla de verdad será:

Entradas Salidas
A B C-1 C S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 0

Figura Nro 22. Tabla de verdad y estructura de sumador completo. (Aragonesa, 2016)

El CI 7483, es un sumador de cuatro bits.

Figura Nro 23. CI 7483. (Aragonesa, 2016)

Para sumar números de más de un bit, también se recurre al conexionado de suma-


dores binarios en paralelo, donde el acarreo de la suma de dos dígitos será una
entrada a sumar en el paso siguiente. En este caso se precisan tantos semisumado-
res como bits tengamos que sumar.

COMPARADOR
Los circuitos comparadores binarios son sistemas combinacionales que, partiendo de
dos combinaciones binarias de n bits, detectan si los valores de estas son iguales y,
en el caso de que no sea así, indica cuál de ellos es mayor. Son circuitos integrados
combinacionales con uno o más pares de entradas que tienen como función comparar
dos magnitudes binarias para determinar su relación.

El comparador más básico, que determina si dos números son iguales, se consigue
mediante una puerta XOR (or exclusiva), ya que su salida es 1 si los dos bits de
entrada son diferentes y 0 si son iguales.

Muchos comparadores poseen además de la salida de igualdad, dos salidas más que
indican cuál de los números colocados a la entrada es mayor (M) que el otro, o bien
es menor (m) que el otro.
28
Entradas Salidas

A B IMm
0 0 100
0 1 001
1 0 010
1 1 100
Figura Nro 24. Tabla de verdad y función lógica del compara-
dor. (Aragonesa, 2016)

Por ejemplo el CI 7485, que es un comparador de 4 bits. Posee 3 entradas en cascada


que permiten utilizar varios comparadores para comparar números binarios de más
de 4 bits:

Figura Nro 25. Comparador CI 7485. (Aragonesa, 2016)

LECTURA SELECCIONADA N° 2

Evolución de los sistemas informáticos

Carceler, V. (s.f.). Evolución de los sistemas informáticos. Disponible en


https://goo.gl/Na0q6I

ACTIVIDAD N° 2

Foro de discusión sobre los aportes de Alan Turing, Jhon Von Neumman, Charles
Babagge.
Instrucciones
 Lee y analiza el tema N° 1 y 2 del manual.
 Ingresa al foro y participa con comentarios críticos y analíticos del tema refe-
rentes a los aportes Charles Babagge, Alan Turing y Jhon Von Neumman,
 Participa respondiendo las siguientes preguntas;
¿Cuál fue el aporte de Charles Babagge Alan Turing y Jhon Von Neumman?
¿Cuál es la relación entre los avances en los desarrollos militares y los avan-
ces en computación? Se le recomienda basar su respuesta en el Libro “La
catedral de Turing de George Dyson”?

29
GLOSARIO DE LA UNIDAD I

1. CPU

Circuito electrónico capaz de recibir instrucciones y datos, para procesarlos y retornar


sus resultados.

2. Memoria Principal

Zona de trabajo del CPU, únicamente de esta zona el procesador puede tomar
instrucciones y datos, se dice que es aleatoria por que cualquier posición puede ser
accedida en cualquier instante.

3. CATCH
En el ciclo de ejecución del computador corresponde a la Primera fase de captura de
la instrucción a ejecutar desde la memoria.

4. FETCH

En el ciclo de ejecución de un computador corresponde a la segunda fase que es la


ejecución en sí de la instrucción previamente interpretada.

5. Tamaño de tecnología de fabricación

Se refiere al tamaño normalmente expresado en nanómetros o micras de las


compuertas que forman parte de los CPUs. Se supone que existe una estrecha
relación entre el tamaño y la velocidad de procesamiento que indica cuanto menor
es el tamaño de tecnología de fabricación entonces menor es el tiempo de respuesta
ya que las compuertas se encuentran mucho más cerca

6. ALU

Componente del CPU encargado de realizar las operaciones lógicas y arimeticas que
le indique la Unidad de control.

7. Unidad de Control:

Componente del CPU que tiene por misión capturar, e interpretar la instrucción a
ejecutar, también se encarga de efectuar operaciones de transferencia hacia o desde
memoria.

8. Registros

Es memoria interna del CPU que requieren emplear la Unidad de control o el ALU
para realizar su trabajo

9. Buffer

Se refieren a memorias cuyo finalidad es igualar tanto las velocidades y anchos de


palabra entre dispositivos diferentes.

30
BIBLIOGRAFÍA DE LA UNIDAD I

AMD. (s.d.). Características básicas de la arquitectura del procesador AMD Sempron


. Tratto da
http://www.amd.com/es/products/desktop/processors/sempron/Pages/AMD
-sempron-processor-key-architectural-features.aspx
Aragonesa, P. E. (2016). DEMO E-DUCATIVA CATEDU. Tratto da http://e-
ducativa.catedu.es/44700165/aula/archivos/repositorio/4750/4923/html/ind
ex.html
Cedrick. (2012). Terminan el Súper computador Cray XK7 “Titan” de 20 PetaFlops en
el Oak Ridge National Laboratory. Tratto da
http://www.madboxpc.com/terminan-el-super-computador-cray-xk7-titan-
de-20-petaflops-en-el-oak-ridge-national-laboratory/
Cruz, A. (2015). https://electronilab.co. Tratto da
https://electronilab.co/tutoriales/tutorial-de-uso-driver-dual-l298n-para-
motores-dc-y-paso-a-paso-con-arduino/
Dunster, I. (1990). A Honeywell-Bull DPS 7 mainframe.
EDITORIAL, P. (2016). http://www.planetasaber.com. Tratto da
http://www.planetasaber.com/theworld/gats/seccions/cards/default.asp?pk
=782&art=59
Eguia, J. B. (2008). Arquitectura de ordenadores. Madrid España: Editorial
Independiente.
Eguia, J. B. (2008). Arquitectura de ordenadores. Madrid: Editorial Independiente.
Electronica_90. (2014). Placa Arduino - Uma das grandes evoluções da Eletrônica.
Tratto da http://eletronica90.blogspot.pe/2014/09/placa-arduino-uma-das-
grandes-evolucoes.html
Esquer, M. J. (2012). Microcontroladores ATMega328P. Baja California, Mèxico.
Gygabyte. (2016). GygaByte.com. Tratto da
http://es.gigabyte.com/products/upload/products/3429/schematic.jpg
informaticahoy.com. (2016). Tratto da http://www.informatica-
hoy.com.ar/aprender-informatica/Que-es-el-sistema-operativo.php
Intel. (2013). Desktop Boards, S/PDIF information. . Tratto da
http://www.intel.com/support/sp/motherboards/desktop/sb/cs-032871.htm
Intel. (2016). www.intel.com. Tratto da http://ark.intel.com/products/82932/Intel-
Core-i7-5820K-Processor-15M-Cache-up-to-3_60-GHz?q=i7-5820K
Navas, M. Á. (2016). Professional Review. Tratto da
https://www.profesionalreview.com/2017/01/03/intel-i7-7700k-review/
Pacheco, R. (2009). Interface serie y paralela. Tratto da
http://culturacion.com/2009/10/interface-serie-y-paralela/
Parhami, B. (2007). Arquitectura De Computadoras. De Los Microprocesadores A Las
Supercomputadoras. México: Mc Graw Hill.
Pc, D. d. (2012). Diferencia entre el FSB y DMI. Tratto da
http://www.doctoresdelpc.com/noticias/diferencia-entre-el-fsb-y-dmi/
Pérez, G. (2015). openwebinar. Tratto da https://openwebinars.net/blog/tutorial-
arduino-entradas-analogicas-y-digitales/
perutienda.com. (2016). Placa Madre: La tarjeta madre o motherboard de la PC.
Tratto da https://www.perutienda.pe/placa-madre-la-tarjeta-madre-o-
motherboard-de-la-pc/
Salinas, G. (2010). La cremme de la cremme para móviles. Tratto da
http://www.chw.net/2010/09/samsung-orion-procesador-arm-doble-nucleo-
de-1ghz/
Soderstrom, T. (2010). Portable Performance: Four USB 3.0 Enclosures For Your 2.5”
Drive. Tratto da http://www.tomshardware.com/reviews/usb-3.0-
superspeed-external-enclosure,2597-2.html
Stallings, W. (2006). Organización y arquitectura de computadores. Madrid: Pearson
Education .
31
Stengel, S. (2016). Welcome to the Old Computer Museum! Tratto da
http://oldcomputers.net/indexwp.html
TanenBaum, A. S. (1999). Organización de Computadoras. Un Enfoque estructurado.
México: Mc Graw Hill.
Tchkheidze, M. (2013). Blue Cerca de los circuitos electrónicos. Tratto da
http://es.123rf.com/photo_5243627_blue-cerca-de-los-circuitos-
electronicos-up.html
tomsharware. (2012). www.tomsharware.com. Tratto da www.tomsharware.com
Velasco, I. M. (2015). Mantenimiento de equipos informáticos. Barcelona:
Universidad de Burgos. Tratto da España: Universidad de Burgos p.4
Viejo, C. B. (2005). Electrónica digital. España: Madrid: Paraninfo.
Wikipedia. (2012). PCI slot. Tratto da
http://es.wikipedia.org/wiki/Peripheral_Component_Interconnect
wow.com. (2016). Tratto da wow.com

32
Autoevaluación N.º 1
I. LEE ATENTAMENTE LAS SIGUIENTES PREGUNTAS, LUEGO ELIGE LA ALTERNATIVA
ADECUADA MARCANDO CON UN ASPA (x).

1. El procesamiento en lotes permitió:


a) Acelerar el trabajo con memoria RAM
b) Reducir los tiempos muertos del Procesador
c) Eliminar los tiempos muertos del procesador
d) Mejorar los tiempos de respuesta

2. Un computador tiene como característica:


a) Ejecutar muchos procesos al mismo tiempo
b) Ejecutar millones de cálculos en un segundo
c) Controlar adecuadamente el uso de memoria y CPU
d) Entender directamente las ordenes brindadas por el usuario

3. Elementos del computador encargado de intercomunicar a los diver-


sos componentes
a) ALU
b) Memoria RAM
c) Bus
d) Conectores

4. Digital se refiere a:
a) Solo se emplean dos valores posibles
b) Se emplean dígitos arábigos
c) Solo requiere ser digitado
d) El uso necesariamente de señales eléctricas con diversos valores

5. No es una característica de los computadores de la primera genera-


ción:
a) No poseían sistema operativo
b) Se programaban mediante comandos en ingles
c) Empleaban gran cantidad de energía
d) No se programaban mientras estaban computando.

II. Indica la verdad o falsedad de las siguientes afirmaciones, eligiendo la correcta.


Por cada respuesta acertada se asignará 2 puntos
6. El reemplazo de transistores en vez de tubos al vacío mejora los (V) (F)
tiempos de respuesta por la menor distancia entre los compo-
nentes
7. En la primera generación de computadores se empleaba progra- (V) (F)
mación cableada
8. La máquina de Von Neumann se basaba en leer sus instruccio- (V) (F)
nes desde una memoria en forma incremental
9. La miniaturización tiene como objetivo único hacer equipos por- (V) (F)
tátiles
10. La traducción hace que desde un programa (bytecode) se ob- (V) (F)
tenga lenguaje maquina

33
UNIDAD II: MEMORIA Y DISPOSITIVOS DE ENTRADA SALIDA
DIAGRAMA DE ORGANIZACIÓN

ORGANIZACIÓN DE LOS APRENDIZAJES


Resultado de aprendizaje de la Unidad II: Al finalizar la unidad, el estudiante será
capaz de elaborar un clasificador de memoria, placas y procesadores, comparando
criterios clave de velocidad de transferencia, capacidad de almacenamiento y velocidad
de procesamiento
CONOCIMIENTOS HABILIDADES ACTITUDES
Tema N.° 1: El computador electró-
1. Clasifica un 1. Tiene la convic-
nico digital y la memoria
computador de ción del uso ra-
1. Analógico Vs Digital
acuerdo a las ca- cional del pro-
1.1. Sistemas analógicos
racterísticas de la cesamiento de
1.2. Los Sistemas Digitales (SD) CPU. cómputo consi-
2. Estructura Genérica de un sistema derando las ne-
Digital 2. Esquematiza el
cesidades
3. Organización de la memoria: Jerar- flujo de proceso
reales
en una placa con-
quía y Tipos
siderando el em-
4. Memoria Cache
pleo de memoria
5. Memoria Virtual cache y memoria
Lectura seleccionada n.° 1 virtual
Windows 7, al cien por cien: trucos para
optimizar el sistema. Manuel Arenas.
2015. Actividad N°1

Arenas, M. (2015). Windows 7, al cien


por cien: trucos para optimizar el sis-
tema. Disponible en Actividad N°2
https://goo.gl/Q9a0co

Tema N.° 2: Entrada y salida


1. Operaciones de Entrada/Salida
2. Técnicas de comunicación con peri- Control de lectura
féricos N° 1
2.1. E/S programada (Encuesta o
Evaluación del tema
pooling). N° 1 y Nº 2, más los
2.2. E/S por Interrupciones contenidos de la lec-
2.3. Entrada salida por DMA (Direct tura seleccionada 1
Memory Access)
3. Administración de dispositivos: Pla-
cas principales, Chipsets

Lectura seleccionada 2

34
Velasco, J. J. (12 de mayo, 2015). John
von Neumann, el genio detrás del orde-
nador moderno. Eldiario.es. Disponible
en https://goo.gl/eztmu0
Autoevaluación n.° 2

35
Tema N° 1: El computador electrónico digital y la memoria
Como ya se mencionó, un computador es una maquina electrónica que procesa
información siguiendo las instrucciones de un programa registrado de acuerdo a los
datos proporcionados y luego entrega estos resultados. En el caso del Computador
digital la información que se procesa en el (programas, datos y resultados) esta
expresada en forma digital binaria, combinando ceros y unos, a nivel de circuitos
Nivel alto de Voltaje y Nivel Bajo de voltaje. En consecuencia, tanto los programas
como los datos y resultados deben codificarse en este formato para poder ser pro-
cesados. Una vez obtenidos los resultados, estos tienen que ser decodificados para
mostrarlos al usuario.

1. Analógico Vs Digital.
Un computador se compone de partes claramente diferenciadas: una física, consti-
tuida por circuitos electrónicos, y elementos electromecánicos, llamado hardware,
y otra parte que constituida por los programas y datos, llamada software en inglés.
Ambas partes están íntimamente relacionadas de forma que una no puede operar
sin la otra y viceversa. Además debemos considerar el Firmware, que es un cir-
cuito integrado que almacena un programa, normalmente este programa requiere
muy poca compilación porque está prácticamente en lenguaje Máquina.

Hardware1 Software2

(informaticahoy.com, 2016)
(Tchkheidze, 2013)

Firmware

Figura Nro 26. Elementos del computador

Para poder entender mejor estos conceptos debemos definir también los términos
analógico y digital, temas que se tratan a continuación

1
Mikhail Tchkheidze (09/12/2013). Blue Cerca de los circuitos electrónicos. Recupe-
rado de 123rf.COM : http://es.123rf.com/photo_5243627_blue-cerca-de-los-circui-
tos-electronicos-up.html
2
3
Guillem(10/12/2013). Windows . Recuperado de: http://www.mastermagazine.info
36
1.1.Sistemas analógicos
Los sistemas analógicos están formados por un conjunto de componentes que in-
teractúan entre sí para lograr el mismo objetivo o utilidad de ese sistema. Un sis-
tema para que sea analógico debe usar variables de entrada y de salida analógicas
o continuas. Es decir, se emplean valores continuos como 2.0, 2.3434353453,
100002323, 5.00001, lo que luego provoca que la transmisión y copia de estos
valores no sea exacta ni tampoco sencilla de realizar.

Figura Nro 27. Gráfico V/t de señal analógica

1.2.Los Sistemas Digitales (SD)


Los sistemas digitales se caracterizan porque sus variables de entrada y salida sólo
tienen dos estados posibles. Estos estados pueden tomar los siguientes valores:

Verdadero Falso
Alto Bajo
Cerrado Abierto
5 voltios 0 voltios
1 0
Figura Nro 28. Gráfico señal digital

2. Estructura Genérica de un sistema Digital


El computador es un sistema electrónico digital, compuesto de circuitos de alta
complejidad y elevada escala de integración, cuya finalidad es efectuar una secuencia
de operaciones mediante un programa previamente establecido

I I
N N
T Almacenamiento de datos T
E E
R R
Entrada F F Salida
A Procesa A
C C
E E

Memoria Temporal

Figura Nro 29. Estructura funcional del Computador.

El computador mediante sus elementos (Figura Nº 30) de Entrada recibe


normalmente señales analogicas, las cuales deben ser transformadas y adecuadas
al idioma del Procesador, en este caso a una representacion en binario, las
interfaces permiten una adecuacion exacta tanto en velocidad como en tamaño de
palabra además permiten que la información se situe en la Memoria Ram del
computador, desde la cual son tomadas en forma secuencial una a una por el
37
procesador, el cual en base a su interpretación las procesa, los resultados son
dejados en la memoria ram, los cuales nuevamente son tomados por las interfaces
y entregados a los elementos de salida.

Finalmente el dispositivo de salida recibe la información en binario y la transforma


a señales analogicas, representacion que los humanos podemos perfectamente
entender.

Un computador debe realizar cuatro funciones: Procesamiento de datos, almacena-


miento de datos, transferencia de datos y control; Para realizar estas funciones es
necesario un mecanismo de control que gobierne el flujo de datos entre los diversos
módulos. Se empezaba a notar la necesidad de un elemento que pueda con-
trolar este proceso.

Lenguaje de Programación de Bajo Nivel - Assembler:


El computador dispone de un conjunto de instrucciones que son reconocidas y
ejecutadas por el procesador. Estas instrucciones se expresan, al igual que los datos,
en forma digital binaria, si bien para reconocerlas mejor y evitar errores se les
asignan unos nombres mnemotécnicos que permiten recordar sus funciones.

Estas instrucciones constituyen el lenguaje de máquina del computador, y suelen ser


diferentes en función del fabricante del procesador. Por su estrecha relación con el
hardware, a los lenguajes de máquina se les llama lenguajes de bajo nivel. En
consecuencia, la tarea de escribir programas en lenguaje de máquina es tediosa y
está sujeta a muchos errores.

Lenguaje de Programación de Alto Nivel


Ante la necesidad de escribir programas cada vez más complejos y fiables, los in-
formáticos desarrollaron lenguajes con niveles más elevados de abstracción, que
incluían operaciones y datos más complejos a los que llamaron lenguajes de alto
nivel, los cuales emplean instrucciones normalmente en Idioma ingles que son re-
lativamente fáciles de entender. Una de las grandes ventajas de estos lenguajes
radica en que la traducción del programa escrito en lenguaje de alto nivel (programa
fuente) al lenguaje de máquina (programa objeto) que, como recordamos, es el único
que puede ser ejecutado por el computador, es automática y se realiza por un
programa traductor.

En la actualidad la mayoría de los programas se escriben en lenguajes de alto nivel,


reservándose los lenguajes de bajo nivel para aquellas aplicaciones donde se necesite
una elevada velocidad o un acceso directo a los órganos del computador; por
ejemplo, en los programas traductores o en programas de gestión del computador.

Por lo tanto en los computadores modernos se llevan a cabo procesos de compila-


ción y traducción, los cuales normalmente no son notorios porque son realizados
automáticamente por el sistema operativo, en ocasiones se realiza a una velocidad
que basta con un instante para poder visualizar el programa requerido listo en pan-
talla, en otras ocasiones si el programa es muy pesado podemos apreciar una pan-
talla que nos indica que ese proceso de Compilación, traducción, carga y linkeo se
está efectuando.

En la figura Nº 31, podemos observar esta secuencia:

38
Figura Nro 30. Secuencia de compilación y traducción (D Mery: 2006)

En detalle luego de obtener el programa objeto o ejecutable, se efectúan las si-


guientes acciones:

 Compilación: Tomar cada instrucción del programa (exe), convertir a len-


guaje máquina.
 Traducir: ubicar una zona de memoria para cada una de las variables del
programa que se va a ejecutar.
 Cargar: Llevar las instrucciones ya compiladas en lenguaje maquina a la
RAM.
 Linkear: es compilar las librerías que el programa va emplear.

¿Por qué tenemos que usar programas?:


Uno de los motivos para emplear programas es que los programas son flexibles, es
decir podemos ir agregando líneas de programación, mejorando una o todas las
instrucciones. De acuerdo a (TanenBaum, 1999), “Las primeras computadoras di-
gitales solo tenían dos niveles el ISA, en el que se efectuaba toda la programación
y el de lógica digital que ejecutaba esos programas. Los circuitos del nivel de lógica
digital eran complicados, difíciles de entender y construir, y poco confiables.

En 1951 Maurice Wilkes. Investigador de la Universidad de Cambridge, sugirió la


idea de diseñar una computadora de tres niveles a fin de simplificar drásticamente
el hardware (WIkes, 1951). Esta máquina tendría un intérprete inmutable integrado
(el microprograma), cuya misión seria ejecutar programas de nivel ISA por inter-
pretación. Puesto que ahora el hardware solo tendría que ejecutar microprogramas,
que tienen un conjunto limitado de instrucciones”

En resumen, se proponía el uso de un sistema que permitiera la gestión de los


diversos procesos en el computador se empezaba a esbozar el Sistema Operativo.

3. Organización de la Memoria: Jerarquìa y tipos


Las memorias empleadas en los computadores, presentan la mayor diversidad de
tipos, tecnología, estructura, prestaciones y coste. Un computador está equipado
con toda una jerarquía de subsistemas de memoria, tanto internos que son direc-
tamente accesibles por el CPU y otros externos accesibles por el procesador me-
diante módulos de entrada/salida.

¿Por qué de la jerarquía?


Las memorias que están en la parte superior de la Jerarquía son las más rápidas,
pero tener un computador donde toda su memoria principal estuviera constituida

39
por únicamente Memorias Cache sería sumamente caro, por supuesto que obten-
dríamos una alta velocidad de proceso del computador, solo que a un costo que
bordearía los millones.
Es importante relacionar la cantidad de Memoria a poder direccionar con el ancho
del bus de direcciones, para ello si el Bus tiene 4 bits entonces se podrá direccionar
hasta 24 direcciones diferentes, empleamos la fórmula 2n, donde n es el número de
bits.
De igual manera el ancho del bus de datos está relacionado con la capacidad de
almacenamiento de cada Registro de memoria, un bus de datos de 8 bits indica que
en cada registro de memoria se almacena un Byte, un bus de datos de 32 bits indica
que cada registro almacena 4 Bytes, cuanto más ancho sea el bus de datos en un
mismo registro se tendrá más información por lo tanto se podrá procesar en un
único ciclo de reloj más información.
Como sabemos la memoria Ram está constituida por millones de Celdas, cada una
esperando por alguna operación a efectuar, pero que además debe ser constante-
mente refrescada con energía eléctrica.

Figura Nro 31. Jerarquía de la Memoria del Computador.

Características por las cuales se clasifican las memorias


Algunas de las formas por las cuales las memorias se pueden clasificar son: su Ubi-
cación, Interna, Externa; Capacidad, Unidades de transferencia, métodos de acceso,
Prestaciones, dispositivo físico, Características físicas y Organización.
A continuación, se describen algunas de ellas:

Organización de las memorias


El elemento básico de una memoria semiconductora es la celda de memoria. La que
se encuentra estructurada como un conjunto de celdas, cada una con una dirección
que la identifica, donde se almacenan los datos y las instrucciones correspondientes
a los programas. Para conocer la ubicación de cada dato estas casillas deben estar
convenientemente numeradas (direccionadas), es lo que se denomina dirección de
memoria.
En cada celda podremos almacenar una determinada cantidad de bits según el
computador, 8bits, 16 bits, 32 bits, 64 bits. El número de bits que almacena un
computador en cada celda y que puede manipular en cada ciclo se denomina longitud
de palabra ("word" en inglés).
Aunque se utilizan diversas tecnologías todas comparten ciertas propiedades:
 Presentan dos estados estables (o semiestables), que pueden emplearse
para representarse el 1 y el 0 binarios.
 Pueden escribirse en ellas (al menos una vez) para fijar su estado.
40
 Pueden leerse para detectar su estado.

RAM Estática y RAM dinámica:


Las memorias estáticas mantienen su contenido mientras simplemente esté alimen-
tada. En cambio, la Memoria RAM dinámica requiere de Refresco, simplemente para
mantener la información, si consideramos que la lectura es destructiva, es decir
que la información se pierde al leerla, para evitarlo hay que restaurar la información
contenida en sus celdas, efectuando también la operación refresco.

Figura Nro 32. Memorias RAM en función de la Tecnología Empleada. (Viejo, 2005)

Las SRAM son más rápidas pero las DRAM puede almacenar muchos más datos en el
mismo tamaño y precio, ya que las celdas de las DRAM son más sencillas y ocupan
menos espacio.
En los sistemas de memoria es habitual utilizar técnicas de corrección de errores.
Esto implica añadir bits redundantes, que se deducen a partir de los bits de datos,
para formar un código de corrección de errores. Si ocurre un error en un bit el código
lo detectará y normalmente lo corregirá.
SDRAM: Es rápida y relativamente económica. Está sincronizada al reloj para que los
datos puedan ser enviados al CPU con cada pulso del reloj, aumentando el número
de instrucciones que el procesador puede ejecutar dentro de un tiempo determinado

Circuitería de las Celdas

Celda de RAM Dinâmica Celda de Memoria Estática(SRAM)


Figura Nro 33. Circuitos de memorias RAM. (Stallings, 2006)

Algunos detalles adicionales a tomar en cuenta al comparar las memorias Estáticas


y las Dinámicas son:

 En lugar de los diminutos acumuladores de carga de las memorias DRAM, en


las memorias SRAM se emplean transistores.
 Cada bit se almacena en un grupo de transistores:
 No necesita ciclos de refresco por lo tanto se obtiene mayor rapidez.
 Aumento de tamaño lo que genera problemas de integración
 Su producción es más costosa.
41
 Esto motiva que se utilice para memoria caché y no como memoria principal.

Memoria ROM(Read Only Memory)


Como sugiere su nombre, es una memoria de solo lectura, contiene un patrón de
datos permanentes que no pueden ser cambiados, contiene datos e instrucciones
en un lenguaje muy cercano al máquina, una ROM es no volátil, es decir no se
requiere de fuente de alimentación para mantener memorizados los valores de los
bits.
Es posible leer, pero no escribir. Normalmente las ROM están destinadas a almace-
nar el Firmware de un computador conocido como microprogramación. Otras apli-
caciones importantes son:
 subrutinas de bibliotecas para funciones muy buscadas.
 programas de arranque de un sistema. BootStrap
 Tablas de funciones. Tabla de Códigos ASCII.
 Programa de autodiagnóstico. POST(Power On Selft Test)

Una ROM se construye como cualquier otro chip de circuito integrado, con los datos
cableados en el chip durante el proceso de fabricación.

Tipos de memoria ROM:


a) Read Only Memory
Contiene datos permanentes que no pueden ser cambiados, i.e. no volátil. Es posi-
ble leer, pero no escribir, los Datos son insertados como parte del proceso de fa-
bricación, aplicaciones:
 librerías subrutinas para funciones muy buscadas.
 programas de arranque de un sistema.

b) Memoria tipo PROM


Programmable ROM, es No volátil, Puede escribirse solo una vez. La escritura es
eléctrica y requiere de un proceso especial, proporcionan flexibilidad.

c) Memoria tipo EPROM


Erasable Programmable ROM. Antes de escribir debe borrarse el contenido, de Lec-
tura y escritura eléctrica (como en PROM). El borrado se realiza a través luz ultra-
violeta. Es más cara que la PROM.
Ventaja: capacidad de actualización múltiple

d) Memoria tipo EEPROM


Electrically EPROM. Puede escribirse sin borrar el contenido anterior. Solo los bits o
bytes direccionados son actualizados. Operación escritura más tardada que la de
lectura en orden de varios cientos de microsegundos por byte

e) Memoria tipo Flash Memory


Flash: velocidad en la que puede ser reprogramada. Fue introducida por primera
vez a mediados de los 80’s. Tienen un costo y funcionalidad: entre EPROM y EE-
PROM. Usa borrado eléctrico y borra en unos segundos. Borrado a nivel bloques y
no a nivel byte

4. Memoria cache
Desde la aparición de procesadores con frecuencias de reloj de 25 MHz y superiores,
la memoria RAM conformada con chips DRAM con tiempos de acceso mayores 60
ns (16,6 MHz) se volvió más lenta que la CPU, por lo que el procesador debía in-
sertar ciclos de espera durante los accesos a memoria. La adopción de memoria
con tecnología SRAM (RAM estática), mucho más rápida, es una solución demasiado
cara cuando se necesitan grandes cantidades de memoria RAM.
Una solución, podría ser disponer de una "pequeña" cantidad de memoria SRAM
donde guardar los datos/instrucciones más recientes para así poder acceder a ellos
42
más rápidamente. La memoria caché es como en la mesa de trabajo, donde guar-
damos los papeles que más a menudo usamos, mientras que la memoria principal
sería el archivo que se encuentra en otra planta. Cuando el procesador necesita un
dato/instrucción, mira primero en la caché, si no está ahí, se dirige a la memoria
principal más lenta.
La memoria Cache se puede entender como una memoria intermedia entre el
Procesador y la memoria RAM. En la Imagen podemos observar un Procesador
Pentium III, lo mostramos al ser muy ilustrativo en este tema:

Memoria
Procesador Cache L2

Memoria
Cache L2
Figura Nro 34. Procesador Intel Pentium II Núcleo y Memoria Cache. (wow.com, 2016)

Una ventaja directa de esta implementación es la cercanía al procesador, así


como la frecuencia de trabajo del Bus que está conectado directamente al procesa-
dor lo cual le permite trabajar a altas frecuencias tal igual como el procesador,
consecuentemente se tiene una alta tasa de transferencia.
Conociendo el tamaño de la mayor parte de los programas y muchos archivos de
datos, podrás pensar que las probabilidades de que la CPU encuentre los datos que
necesita en la memoria caché son pequeñas, pero de acuerdo a las estadísticas
encuentra los datos que necesita con la frecuencia suficiente para mejorar el
desempeño de una PC, estamos hablando de una probabilidad del 70%. Las ins-
trucciones de programas a menudo se encuentran en la memoria caché.

Principio de Localidad de Referencia


3 2

4 1

b) Principio de Localidad
a) Orden en Flujo entre la Ram y Cache
Figura Nro 35. Memoria Cache y Principio de localidad

Con frecuencia, los programas piden a la computadora que haga la misma operación
de manera repetida hasta que se cumpla una condición particular, a esto le denomi-
namos Principio de Localidad de Referencia. En los lenguajes de programa-
ción de computadoras, este proceso repetitivo se denomina ciclo o bucle (inglés:
loop).
Finalmente recordemos que las memorias caches están construidas con tecnología
SRAM, lo que les permite tiempos de respuesta muy cortos en comparación a las
DRAM.
Los programas poseen una propiedad denominada localidad de referencias: ya que
tienden a reutilizar los datos e instrucciones que utilizaron recientemente.
La localidad de referencia se analiza en sus dos dimensiones: temporal y espacial.
43
La Localidad temporal, en donde las palabras de memoria accedidas recientemente
tienen una alta probabilidad de volver a ser accedidas en el futuro cercano, esto
funciona muy bien por la existencia de bucles, subrutinas y accesos a la pila de va-
riables locales en los programas.
La Localidad espacial, las palabras ubicadas en direcciones de memoria próximas a
las recientemente referenciadas tienen una alta probabilidad de ser referenciadas en
el futuro cercano. Esto funciona fundamentalmente por la linealidad de los progra-
mas y el acceso a las estructuras de datos regulares como vectores y matrices.
Por consecuencia de la localidad de referencia, se puede predecir con adecuada pre-
cisión las instrucciones y datos que el programa utilizará inmediatamente, conside-
rando los accesos a memoria realizados recientemente.
En la figura 37, se aprecia la memoria caché L2 del CPU de AMD. También, se aprecia
a la memoria caché L1 que está dividida en dos: una parte almacena las instrucciones
de los programas que se están ejecutando; y la otra parte, los datos, que son resul-
tado de la ejecución del programa. Por ejemplo, si se está escribiendo una carta, las
instrucciones del programa MS-Word deberán estar en L1 (parte de instrucciones); y
el contenido de la carta, en L1 (parte de datos). La mayoría de los procesadores
actuales usan, también, la memoria caché L3, que es de mayor capacidad que L1 y
L2.

Figura Nro 36. Memoria Cache en Procesador AMD. (AMD, s.f.).

5. Memoria Virtual:
La memoria virtual es una técnica que permite la ejecución de procesos- programas
parcialmente cargados en memoria principal. Con la característica que los progra-
mas pueden ser más grandes que la memoria RAM instalada.
Se utiliza el disco duro como almacén secundario de procesos.
El empleo de memoria Virtual, no significa que un sistema tenga mejor perfor-
mance, solo permite tener más programas en estado de listo para ejecución.

Figura Nro 37. Velocidad de acceso a Memoria Virtual.

Nuevamente la memoria Virtual es posible de aplicar por el principio de Localidad


de referencia, es decir podemos llevar a memoria RAM únicamente las partes del
programa que se requieren, esto está básicamente respaldado por la programación
estructurada y la programación modular.

44
LECTURA SELECCIONADA N.° 1
Windows 7, al cien por cien: trucos para optimizar el sistema. Manuel Arenas.
2015.

Arenas, M. (2015). Windows 7, al cien por cien: trucos para optimizar el sistema. Dis-
ponible en https://goo.gl/Q9a0co

ACTIVIDAD N° 1
Foro de discusión sobre las ventajas del empleo de SSD
Instrucciones
 Lee y analiza el tema N° 2 del manual.
 Ingresa al foro y de acuerdo a la lectura seleccionada Nro 1, responde:
¿Qué ventajas efectivas aporta el uso de un SSD?
Lista tipos de aplicaciones que en especial se beneficien del uso de SSD

45
TEMA N° 2: ENTRADA/SALIDA.
El computador requiere comunicarse con el exterior, para ello emplea distintas téc-
nicas y dispositivos, ya que estos dispositivos pueden llegar a ser muy variados
tanto en velocidad, tamaño y funciones, inclusive la cantidad de dispositivos conec-
tados puede llegar a estar en el orden de decenas, por lo planteado esta función es
una de las más complejas de controlar por el computador.

1. Operaciones de Entrada/Salida
Un computador no puede estar formado sólo por la CPU y la memoria. Para darle
alguna utilidad debe de comunicarse con el mundo exterior a través del subsistema
de entrada/salida (I/O input/output). La misión principal del subsistema de E/S es
adaptar los dispositivos externos antes de conectarlos al bus del sistema.

¿Por qué no se conectan directamente al bus del sistema?

1. La velocidad de transmisión de datos de los periféricos es siempre menor que la


de la memoria y la CPU.
2. Debido a la gran diversidad de periféricos no es posible incorporar toda la lógica
necesaria en el computador para manejar cada uno de éstos.
3. Los formatos de datos de los periféricos son diferentes a los del resto del compu-
tador
Hay dos formas de implementar la E/S en un computador:
1. Construir a medida el subsistema utilizando elementos básicos
2. O bien incorporar y programar dispositivos estándares más complejos y genéricos.
Ejemplo primer caso: circuito para que al escribir un bit uno lógico en una dirección
de memoria se ilumine un LED.
Funciones del sistema de E/S:

Las Funciones del bus de sistema son:


1. DIRECCIONAMIENTO: selección del dispositivo correspondiente de entre los dis-
positivos disponibles en el sistema.
2. SINCRONIZACIÓN: ha de posibilitar que la CPU y la memoria (alta velocidad
transferencia de datos) se puedan comunicar con los dispositivos de E/S (baja velo-
cidad) sincronizando los envíos de datos entre ambos.
3. TRANSFERENCIA: el sistema E/S debe de tener toda la circuitería y señales de
comunicación apropiadas para llevar a cabo la comunicación con cada uno de los
dispositivos del sistema.
PERIFÉRICOS:
Son dispositivo electrónicos-mecánicos mediante los que se implementa la En-
trada/salida, permiten la transferencia de información entre la CPU y el mundo exte-
rior. Emplean una interfaz que traduce la información asíncrona y analógica del
mundo exterior a la información síncrona y codificada del computador.
Los dispositivos de E/S, están compuestos por: módulo de E/S y dispositivo (externo)

MÓDULO DE E/S:
Coordina el correcto flujo de información entre uno o varios dispositivos externos
(impresora, monitor, ...) e internos (memoria, procesador).

FUNCIONES DEL MÓDULO DE E/S:


1. Reconocer la dirección de la CPU que identifica al dispositivo externo.
2. Transferencia de datos entre la CPU y el dispositivo externo.
3. Recepción de mandatos (comandos) desde la CPU.
4. Mantener información del estado del periférico y mantener el protocolo de comu-
nicaciones con el periférico.
46
Un módulo de E/S puede controlar varios dispositivos externos. El módulo de E/S
también almacena datos temporalmente debido a las diferencias de velocidades entre
los periféricos y la CPU o la memoria. Dispone de un mecanismo de detección de
errores tales como el uso del bit de paridad. Los términos “controlador”, “procesador
de E/S” y “módulo de E/S” son equivalentes. La diferencia radica en su complejidad.

2. Técnicas de comunicación con periféricos

Para lograr comunicarse con los periféricos existen varias técnicas, entre ellas tene-
mos:
2.1. E/S programada (Encuesta o pooling)

La entrada/salida programada se caracteriza por:


 La CPU tiene el control absoluto de la operación de E/S: inicia y lleva a cabo la
transferencia.
 La CPU está dedicándose por completo a realizar la operación de E/S: realiza tanto
la comprobación de estado como la transferencia y la inicialización, por lo tanto,
es poco eficiente.
 El empleo de Hardware es mínimo.

2.2. E/S por Interrupciones


De acuerdo a esta técnica el dispositivo de E/S le indica a la CPU cuando está prepa-
rada para transferir datos (genera una interrupción a la CPU), activando una línea
especial conectada a la CPU (línea de interrupción).

El proceso de funcionamiento es el siguiente:


1) El procesador ejecuta instrucciones de un programa. Al finalizar cada instrucción
comprueba si se ha producido una interrupción.
2) En caso afirmativo se salva el estado actual del programa (contador del programa
y registros) y se salta a ejecutar la rutina de servicio correspondiente
3) La rutina de servicio efectúa las operaciones apropiadas en la E/S para realizar
la transferencia de datos solicitada
4) Al finalizar la rutina de servicio se recupera el estado de la CPU y se continúa
ejecutando el programa que se estaba ejecutando antes de la interrupción.

Las interrupciones pueden ser:


 Enmascarables (se pueden dejar de atender por software)
 NO enmascarables (siempre atendidas).

Generalmente existen varios periféricos (y no uno sólo) conectados que pueden rea-
lizar interrupciones, esto obliga a establecer prioridades y decidir cómo se conectan
a la CPU. También hay que determinar para cada periférico su vector de interrupcio-
nes.

2.3. Entrada salida por DMA (Direct Memory Access)


El DMA es un procesador/controlador especializado en transferencias “muy grandes”
desde periféricos a memoria y viceversa. Es programable, por lo tanto, la CPU no
realiza ninguna tarea (salvo programar el DMA) ya que la inicialización y transferencia
son gobernadas por el periférico. Para programar el DMA hay que enviarle al menos
los siguientes datos:
- Dirección/puerto periférico E/S.
- Posición/dirección en memoria principal.
- Tamaño (número de bytes a transferir).
- Tipo transferencia: lectura o escritura.
47
Al finalizar el DMA avisa mediante una interrupción. Esta interrupción al igual que el
resto de interrupciones son normalmente atendidas al final de cada instrucción. La
rutina de servicio asociada comprobará el estado del DMA para comprobar si se han
producido errores al ejecutar la transferencia que se le ha encomendado.
A diferencia del mecanismo por interrupción convencional, una orden DMA puede
transferir muchísimos datos de una sola vez. En consecuencia, el número de inte-
rrupciones por byte transferido es mucho menor que con las interrupciones conven-
cionales: se gana en rapidez.
El procesador no se encarga de la transferencia de datos, significando que puede
dedicarse a desarrollar otras tareas inclusive si se está dando una operación de E/S
con uso intensivo de memoria.

Figura Nro 38. Esquema de DMA. (Stallings, 2006).

Los sistemas actuales poseen diversas formas de implementar el DMA, cada una po-
see ventajas y desventajas propias de la implementación.

Bus único, DMA inde-


pendiente: Actúa como
una CPU de E/S.
Necesita un ciclo para
acceder al módulo de
E/S o periférico y otro
para acceder a memoria

Bus único y E/S integra-


das: alternativa para re-
ducir un ciclo de bus en
las transferencias.

Bus de E/S: es una va-


riación de la anterior
que permite hacer la ar-
quitectura más escala-
ble.

Figura Nro 39. Formas de Conectar DMA al sistema. (Stallings, 2006)

Puertos de Entrada/salida
Cualquier dispositivo (distinto de la memoria RAM) que intercambie datos con el sis-
tema lo hace a través de un "puerto", por esto se denominan también puertos de E/S
("I/O ports").

48
Desde el punto de vista del software, un puerto es una interfaz con ciertas caracte-
rísticas; se trata por tanto de una abstracción (no nos referimos al conector con el
que se conecta físicamente un dispositivo al sistema), aunque desde el punto de vista
del hardware, esta abstracción se corresponde con un dispositivo físico capaz de in-
tercambiar información (E/S) con el bus.
Como los dispositivos E/S tienen algún tipo de conexión con el bus externo, deben
tener una dirección (o conjunto de ellas) que los identifique. Los hemos comparado
con un teléfono, un dispositivo con el que se puede enviar/recibir información me-
diante una dirección. Hablar de un puerto E/S es casi siempre sinónimo de una di-
rección, y es costumbre informática referirse a estas direcciones en hexadecimal.
Podríamos resumir, que un Puerto es una zona de memoria RAM que se identifica
mediante una dirección en donde los dispositivos dejan información o recogen infor-
mación.

Direcciones de puertos
El modelo de direccionamiento del PC ha adoptado dos modelos, según la naturaleza
del dispositivo a conectar:

 Direccionamiento dedicado para dispositivos de media/baja velocidad. Por ejem-


plo, puertos serie y paralelo (impresora), teclado, Etc.
 Direccionamiento mapeado en memoria para dispositivos rápidos (típicamente
los adaptadores gráficos).

Respecto a los dispositivos de direccionamiento dedicado, desde la introducción


del IBM-PC, es costumbre que determinados dispositivos muy comunes se conecten
mediante puertos de direcciones determinadas. En la tabla adjunta se muestran al-
gunas de estas direcciones típicas para dispositivos de E/S. Las referencias a los
chips se refieren a los utilizados en los primeros PCs. Actualmente han sido sustitui-
dos por uno o dos integrados (Chipset) que realizan todas las funciones.
Puede observarse que para un mismo periférico se tienen varias direcciones (un
"rango"). La razón es que estos dispositivos tienen varios registros y/o son progra-
mables, para lo que disponen de registros especiales (cada registro de un Byte tiene
una dirección, y estas son correlativas
IBM definió las direcciones de puerto de las interfaces de impresora en los PC mono-
cromo y en los de color. Las asignaciones fueron las siguientes:
Puerto Monocromo Color

LPT1 3BC-3BFh 378-37Fh


LPT2 378-37Fh 278-27Fh
LPT3 278-27Fh ---

En lo referente a los puertos serie, durante la secuencia inicial de identificación del


hardware, el BIOS realiza una búsqueda de dispositivos de E/S por direcciones en un
orden determinado, y les asigna un nombre lógico según el orden de aparición. En
el caso de los puertos serie el orden suele ser el siguiente:

Puerto Dirección

COM1 3F8-3FFh
COM2 2F8-2FFh
COM3 3E8-3EFh
COM4 2E8-2EFh

Puedes comprobar la asignación de puertos del sistema mediante la utilidad


msinfo32.exe (las direcciones de memoria están expresadas en hexadeci-
mal).

49
Las direcciones mapeadas en memoria se eligieron para algunos dispositivos
como los adaptadores gráficos, que requerían mover grandes cantidades de datos
muy rápidamente.

Direcciones de puertos bien conocidos


Dispositivo
Dirección
Controlador DMAC#1 primario 8237A 000-00F
Controlador de interrupciones PIC#1 8259A 020-021
Temporizador programable PIT 8253 y 8254 040-043
Controlador periféricos PPI 8255 (XT) 060-063
Controlador 8742 (AT) 060-064
Registros de página DMA 081-08F
Controlador de interrupciones PIC#2 (AT) 0A0-0A1
NMI Mask register (XT) 0A2-0AF
Controlador DMAC#2 secundario (AT) 0C0-0DF
Clear / Reset del coprocesador matemático 0F0-0F1
Coprocesador matemático 80287 0F8-0FF
Controlador de disco duro (AT) 1F0-1FF
Puerto de juegos 200-20F
Unidad de expansión (XT) 210-21F
Ratón (conectado al bus) 238-23B
Ratón de bus alternativo 23C-23F
Puerto paralelo (LPT2) 278-27F
Puerto serie 8250 (COM4) 2E8-2EF
Puerto serie 8250 (COM2) 2F8-2FF
Controlador disco duro (XT) 320-32F
Tarjeta de red 368-36B
Puerto paralelo (LPT1) 378-37F
MDA (Monochrome Display Adapter) 3B0-3BB
Puerto serie 8250 (COM3) 3E8-3EF
Controlador de disquete 3F0-3F7
Puerto serie 8250 (COM1) 3F8-3FF

3. Administración de dispositivos: Placas principales, Chipsets


El procesador requiere comunicarse con otros elementos, como son: memoria RAM,
memoria ROM, tarjetas de video, sonido, red y ranuras de expansión. Para ello se
emplea un elemento base que es la MainBoard o simplemente Placa.
LA PLACA PRINCIPAL:
Llamada también motherboard o mainboard, maneja todas las transferencias de da-
tos entre la CPU y los periféricos. Alberga la CPU, la caché de tercer o segundo nivel,
el chipset, el BIOS, la memoria principal, los chips de entrada/salida, los controlado-
res de discos y las tarjetas e expansión.

La placa, es un circuito impreso (PCB: Printed Circuit Board) que soporta y conecta
físicamente los elementos fundamentales de un computador como son Microproce-
sador, memoria, chipset, tarjetas de periféricos, conectores, elementos electrónicos
(condensadores, bobinas, etc.) etc.
En la imagen podemos observar una placa para Intel para un procesador Core I7.

50
Figura Nro 40. Placa para procesador core I7. (Gygabyte, 2016)

Componentes de la mainboard - placa


Toda PC está formada por una placa base y una serie de placas de expansión o tar-
jetas controladoras, fabricadas en peltrax, un derivado de la fibra de vidrio, cada una
de las cuales está destinada a cumplir una función específica, dependiendo del tipo
de controlador que tenga la placa
Es en la mainboard donde se alojan los principales componentes de una PC y se
conectan las tarjetas de expansión. Más allá de las diferencias originadas por las
distintas generaciones, en todos los mainboard encontraremos una serie de compo-
nentes comunes.
Los componentes básicos que se encuentran en la placa son:
Zócalo del Microprocesador:
Este es el zócalo donde se coloca el microprocesador. Las medidas y la cantidad de
contactos varían según el tipo de procesador utilizado. Posee los anclajes necesarios
para la colocación del cooler.

Procesador LGA

Socket LGA

Figura Nro 41. Socket LGA. (Velasco, 2015)

Chipset Northbridge.
También llamado “Puente Norte”, es el encargado de proporcionar el bus del proce-
sador y controlar la memoria, así como de administrar el tráfico con el bus AGP o PCI
Express. Su función principal es interconectar a tres elementos importantes de alta
velocidad: el procesador, la RAM y la tarjeta de video. En la actualidad, en algunas
modelos de PC´s este chip ha sido absorbido e integrado en el propio CPU o proce-
sador
Como es un dispositivo de alta velocidad, genera mucho calentamiento, por lo que
usa un disipador para liberar el calor, este chip es cubierto por el disipador de alu-
minio y por ello no se aprecia el chip.
También llamado MCH por Intel (MCH: Memory Controller Hub). Comunica a la CPU
con el resto del sistema, para lo que contiene:
 Interfaz con el bus externo del micro (bus del sistema).
 Controlador de memoria (bus de memoria).
 Interfaz con el sistema gráfico (bus gráfico).
 Interfaz con el puente sur (bus de enlace).

51
Figura Nro 42. Funciones de los Chipsets Norte y Sur. (Velasco, 2015).

Chipset Southbridge.
También llamado “Puente Sur”, es la parte del chipset encargada de brindar conec-
tividad entre el resto de dispositivos, sobre todo los de menor velocidad, ya que el
puente norte se reserva la conexión de los tres elementos más rápidos. Lleva inte-
grados diferentes controladores y por ello decimos que controla a los discos duros,
al bus PCI, al PCI express, a los puertos USB, a los puertos del teclado, red, entre
otros. También es llamado ICH por Intel (ICH: I/O Controller Hub), para lo cual
contiene:
 Interfaz con el puente norte (bus de enlace).
 Interfaz con el bus de expansión: Controlador PCI, (PCI-Express).
 Dispositivos PCI integrados: controladora USB (Interfaz USB-PCI), Con-
troladora IDE (discos duros y unidades ópticas), etc.
 Dispositivos estándar heredados (controlador DMA, controladores de in-
terrupción 82C59, RTC y memoria CMOS).

52
Chipset sur
Debajo del Disipador

chipset norte
debajo del disipa-
dor

Figura Nro 43. Chipset Norte y Sur. (perutienda.com, 2016)

La tendencia es agrupar cada vez más funciones dentro del chipset. Muchos de los
circuitos integrados como el controlador de interrupciones 8259 (PIC: Programmable
Interrupt Controller), el controlador DMA (Direct Memory Access: 8 237), el reloj de
tiempo real RTC (Real Time Clock), etc. se encuentran integrados en el puente sur
del chipset.
BUSES:
Los buses son en el circuito impreso que permite el flujo de la electricidad de un
componente a otro, en una placa encontramos los siguientes:

• Bus externo del micro. Llamado Host Bus o Bus frontal del sistema (FSB: Frontal
Side Bus), en placas para Core I 7, son QPI(Quick Path Interconect).
• Bus de memoria.
• Bus del sistema gráfico (Antes AGP, ahora PCI Express).
• Buses de expansión: (Actualmente PCI, PCI Express).
• Buses externos: USB, ATA y/o Serial ATA.
• Bus de enlace (puente norte-puente sur)
• Bus de gestión del sistema SMBus (System Management Bus).
• Bus LPC (Low Pin Count) de conexión del chip super I/O (Teclado, disquetera,
puertos serie, etc…)

Velocidad de transferencia - Ancho de banda


Cuando se habla de buses, el término “ancho de banda” (BW = BandWidth) se usa
equivocadamente para referirse a la cantidad teórica de datos que puede transportar
el bus por unidad de tiempo. Sin embargo, el ancho de banda es un parámetro que
debe expresarse en Hertzios (Hz) y por lo tanto, debe referirse en todo caso a un
rango de frecuencias.

Bus de enlace
Denominamos así al bus que enlaza el puente norte y el sur.

Ejemplo: Intel Direct Media Interface (DMI), es el bus de conexión entre el MCH
53
(puente norte) y el ICH6 (puente sur) de Intel. Algunas características relevantes
son:

FSB (Front Side Bus)

FSB es una tecnología de Bus empleada hasta los procesadores Core 2 Quad /
Duo. El trabajo del FSB consiste en comunicar con otros componentes del compu-
tador, como la memoria, slots PCI, slot de Video, dispositivos E/S como USB, disco
duro, tarjetas de red, etc. El flujo de entrada y salida desde y hacia el procesador
pasa a través de FSB. En la Figura Nº 45 se muestra un sistema típico con procesador
Core 2 Duo y los canales de comunicación del FSB.

Figura Nro 44. Bus FSB (Pc, 2012)

DMI (Direct Media Inteface).

DMI, es una tecnología de Bus empleada con procesadores Intel Core i3, i5 e i7,
en la cual el procesador se comunica a través de un canal exclusivo con la RAM, que
es un canal diferente con PCIe y tercera DMI canal para comunicarse con todos los
demás componentes del equipo. Esto aumenta el rendimiento de manera significa-
tiva.

54
Figura Nro 45. arquitectura Core i7 típica. (Pc, 2012)

Slots para tarjetas de expansión / Buses


PCI
Este bus de funciona a 33 MHz. Puede operar tanto a 32 bits como a 64 bits. El límite
teórico de transferencia a 32 bits es de 132 MB/seg. Existen tres tipos de especifica-
ciones, determinadas según las necesidades eléctricas. La especificación de 5 voltios
para PCs de escritorio; la de 3,3 para notebooks; y una universal que soporta ambos
voltajes. Las tarjetas PCI disponen de una ranura que orienta al usuario respecto de
la manera en que deben ser instaladas.

Figura Nro 46. Slots de arquitectura PCI. (Wikipedia, 2012)

Fue el slot de expansión más usado, pero en la actualidad ha sido reemplazado por
el PCI Express, ya que compañías, como IBM, 3Com, Adaptec, HP y Compaq, impul-
san una versión especial de alta velocidad para servidores del bus PCI llamada PCI-
X. Este nuevo estándar permite un ancho de banda de 1 GB/segundo (con un bus de
64 bits funcionando a 133 MHz).

Slot de Expansión PCI Express 16X.


En el gráfico se muestra dos slots PCI express 16X, de color rojo y azul, acompañado
de dos slots PCI y dos slots PCI express 1X, siendo estos los más pequeños

55
Figura Nro 47. Slots Pci Express(Rojo y Azul) PCI(Blanco). (tomsharware, 2012)

Conectores Externos – Puertos Hardware.


Muchas veces también denominados puertos simplemente, permiten la relación del
computador con el exterior, se encargan de facilitar el intercambio de información
entre el computador y la periferia. Su función consiste en posibilitar la transmisión
de datos entre dos sistemas distintos.

Figura Nro 48. Conectores del Panel posterior. (Intel, Desktop Boards, S/PDIF information. ,
2013)

Los puertos los podemos tener ya integrados en la placa base como ya vienen ac-
tualmente, pero en las placas anteriores a Pentium, no venían integrados en la placa
base.

Puerto serie
Fue diseñado para permitir una comunicación de dos vías entre distintos dispositivos
y la PC. Su interface externa se caracteriza por tener nueve pines, denominado DB9,
bajo la especificación RS232. El chip UART (Universal Asynchronous Receivcer/Trans-
mitter), se encarga de controlar el proceso de envío y recepción de datos. En la
actualidad se emplean para acceder al Puerto de Consola de Routers y Switches,
Encoders y otros dispositivos con el fin de configurarlos.

Figura Nro 49. Interfaces de Puertos serial- DB9 Macho. (Pacheco, 2009)

Puerto paralelo
Se empleaba originalmente para conectar la impresora a la PC, lo que ha evolucio-
nado hacia múltiples funciones y, ahora, sirve como interface entre varios dispositi-
vos. Los puertos paralelos llevan este nombre porque tienen ocho líneas para enviar
todos los bits que componen un byte de datos en forma simultánea a través de ocho
cables. Esta interface en la actualidad es más lenta que las conexiones seriales, ya
que posee el problema de Cross Talk.

56
Figura Nro 50. Interface de Puerto Paralelo-DB25 Hembra. (Pacheco, 2009)

USB
El Universal Serial Bus (USB) es un estándar que permite conectar dispositivos Plug
& Play externos a la PC, se elimina la necesidad de instalar tarjetas, lo que ahorra
recursos como interrupciones (IRQs). USB 1 constituye una interface de 12 Mbit/seg
a través de una conexión de cuatro hilos dentro de un cable..

Figura Nro 51. Conectores de USB 3.0 y USB 2.0. (Soderstrom, 2010)

USB soporta hasta 127 dispositivos gracias a que se pueden formar redes de dispo-
sitivos a través de hubs de expansión que pueden estar en la PC o en otros disposi-
tivos USB, como teclados y monitores; incluso, hay hubs USB dedicados.
En la actualidad podemos encontrar hasta 4 versiones de USB, USB1, USB 2, USB3
y USB 3.1.

LECTURA SELECCIONADA N.° 2


JOHN VON NEUMANN, EL GENIO DETRÁS DEL ORDENADOR MODERNO.
JUAN JESÚS VELASCO.

Velasco, J. J. (12 de mayo, 2015). John von Neumann, el genio detrás del ordenador
moderno. Eldiario.es. Disponible en https://goo.gl/eztmu0

ACTIVIDAD N° 2
Foro de discusión sobre “John Von Neumann, el genio detrás del ordenador mo-
derno”.
Instrucciones
Ingrese al foro y participe con comentarios críticos y analíticos del tema referentes a
“John Von Neumann, el genio detrás del ordenador moderno”
 Participa en el foro respondiendo a las preguntas:
¿Qué proyecto impulsó el desarrollo de la computadora de propósito general?
¿Qué relación existe entre el desarrollo de las bombas atómicas o de hidro-
geno y las computadoras?
¿Qué son los replicantes?

57
GLOSARIO DE LA UNIDAD II

APU: Un Accelerated processing unit en español Unidad de Procesamiento Acele-


rado, Unidad de Cómputo Acelerado o simplemente APU, dichos microprocesadores
combinan un CPU multinúcleo, una GPU y un bus de interconexión de alta velocidad
que permite transferir información a mayores velocidades, debido a que se encuen-
tran en el mismo chip el CPU la GPU y controlador de memoria entre otros, esto es
posible gracias a la miniaturización de los chips actuales procesos de fabricación de
entre 40 y 32 nm.
El término unidad de procesamiento acelerado o APU fue utilizado por primera vez
en un contexto público en el año 2006.
ALU: Unidad Aritmético Lógica. Es la encargada de las operaciones aritméticas y
lógicas: suma, resta, multiplicación, división, mayor, menor, diferente, igual, retor-
nando como resultado de su operación falso o verdadero etc.
BIOS: Basic Input Output System. Es un programa informático inscrito en compo-
nentes electrónicos de memoria Flash (ejemplo clásico de FIRMWARE) existentes en
la placa base. Este programa controla el funcionamiento de la placa base y de dichos
componentes. Se encarga de realizar las funciones básicas de manejo y configuración
del computador.
BIT: Unidad elemental de información que equivale a 0 o 1. Acrónimo de Binary Digit
BYTE: Conjunto de 8 bits. Se relaciona directamente con un carácter de la tabla de
códigos ASCII.
CHIPSET: Es un conjunto de componentes electrónicos construidos en un circuito
integrado que gestiona el flujo de datos entre el procesador, la memoria y los dispo-
sitivos periféricos. Por lo general se encuentra en la placa base de un ordenador,
están diseñados para trabajar con una familia específica de procesador.
CODIFICACIÓN: Transformación de la representación de la información.
CONEXIÓN ATX: Es la conexión que se hace de la fuente de poder a la Placa. Com-
puesta de 20 pines o 24 pines.
CPU: Unidad Central de Procesamiento. Su nombre proviene del hecho que se en-
carga de procesar datos de acuerdo a las instrucciones que se le indican en memoria,
finalmente presenta los resultados en alguna forma desalida.
DATOS: Símbolos para representar un número, objeto, letra etc.

DDR SDRAM : DDR permite a ciertos módulos de memoria RAM compuestos por
memorias síncronas (SDRAM), disponibles en encapsulado DIMM, la capacidad de
transferir simultáneamente datos por dos canales distintos en un mismo ciclo de re-
loj. Los módulos DDR soportan una capacidad máxima de 1 GiB (1 073 741 824
bytes).
DVI: Digital Visual Interface. Es una interfaz de vídeo diseñada para obtener la má-
xima calidad de visualización posible en pantallas digitales.
ESTACIONES DE TRABAJO: Computador de altas prestaciones destinado para tra-
bajo técnico o científico. En una red de computadoras, es una computadora que fa-
cilita a los usuarios el acceso a los servidores y periféricos de la red.
HARDWARE: Elementos electrónicos y mecánicos del computador
IDE: Tecnología para la conexión de dispositivos de almacenamiento como el disco
duro y la unidad de CD mediante un bus de datos de 40 hilos, relacionada con el
estándar PATA(Parallel ATA).
INSTRUCCIONES: Pasos a realizar por la computadora para la ejecución de un pro-
grama.
58
LENGUAJE DE PROGRAMACIÓN: Instrucciones que conforman sentencias las cua-
les siguen unas reglas precisas.
LENGUAJES DE ALTO NIVEL: Instrucciones de entendimiento para los humanos
fácilmente.
MACROCOMPUTADORAS (MAINFRAMES): Computadores de uso industrial, tie-
nen gran procesamiento y al igual que las supercomputadoras puede tener cientos
de usuarios conectados al mismo mainframe (multiusuario).
MEGAHERTZ: Medida de la frecuencia de Reloj, equivalente a 1024 KHz.
MEMORIA AUXILIAR: Dispositivos de almacenamiento permanente y externos
como discos duros, USB, DVD, CD etc.
MEMORIA RAM: Random Access Memory. Memoria en la que cada posición direc-
cionable tiene un único mecanismo de direccionamiento. El tiempo de acceso a una
posición dada es independiente de la secuencia de acceso previa, es empleada por el
procesador, desde la cual el procesador va tomando instrucciones y datos según la
dirección que indique el Program Counter(PC).
MEMORIA ROM: Read Only Memory. Normalmente empleada como FIRMWARE,
para almacenar programas que no requieran ser compilados.
NANOCOMPUTADORA: Computadora con una circuitería tan pequeña que sólo
puede verse a través de un microscopio. Las nanocomputadoras pueden ser electró-
nicas (donde la nanolitografía se usa para crear los circuitos microscópicos), bioquí-
mica u orgánica. Las nanocomputadoras se componen de materiales a nivel molecular
y son la promesa de crear computadoras cada vez más pequeñas y rápidas, un con-
cepto muy importante en el mundo de la computación
ORDENADOR: Termino empleado en España para designar a las Computadoras.
PERIFÉRICOS: Son las unidades de entrada y salida.
SATA: Serial Advanced Technology Atachment. Emplea una conexión serial, por ello
emplea una sola interfaz para cada dispositivo.
SISTEMA OPERATIVO: Programa principal para controlar la ejecución de todos los
programas a su vez hace la labor de interfaz entre el usuario y el Hardware.
SLOTS: Ranuras donde se insertan tarjetas de expansión: Sonido, Video.
SOCKET: Elemento físico diseñado para insertar el procesador.
SOFTWARE: Son los programas.
UC: Unidad de control. Elemento de la CPU encargada de interpretar las instruccio-
nes que se toman desde la RAM y de acuerdo a este resultado determina el flujo
siguiente a efectuar.
UNIDADES DE ENTRADA: Dispositivos externos del computador que reciben la in-
formación del usuario: Mouse, Teclado, Scanner.
UNIDADES DE SALIDA: Dispositivos externos del computador que envían la infor-
mación al usuario: Monitor, Parlantes, Impresora.

59
BIBLIOGRAFÍA DE LA UNIDAD II

AMD. (s.d.). Características básicas de la arquitectura del procesador AMD Sempron


. Tratto da
http://www.amd.com/es/products/desktop/processors/sempron/Pages/AMD
-sempron-processor-key-architectural-features.aspx
Aragonesa, P. E. (2016). DEMO E-DUCATIVA CATEDU. Tratto da http://e-
ducativa.catedu.es/44700165/aula/archivos/repositorio/4750/4923/html/ind
ex.html
Cedrick. (2012). Terminan el Súper computador Cray XK7 “Titan” de 20 PetaFlops en
el Oak Ridge National Laboratory. Tratto da
http://www.madboxpc.com/terminan-el-super-computador-cray-xk7-titan-
de-20-petaflops-en-el-oak-ridge-national-laboratory/
Cruz, A. (2015). https://electronilab.co. Tratto da
https://electronilab.co/tutoriales/tutorial-de-uso-driver-dual-l298n-para-
motores-dc-y-paso-a-paso-con-arduino/
Dunster, I. (1990). A Honeywell-Bull DPS 7 mainframe.
EDITORIAL, P. (2016). http://www.planetasaber.com. Tratto da
http://www.planetasaber.com/theworld/gats/seccions/cards/default.asp?pk
=782&art=59
Eguia, J. B. (2008). Arquitectura de ordenadores. Madrid España: Editorial
Independiente.
Eguia, J. B. (2008). Arquitectura de ordenadores. Madrid: Editorial Independiente.
Electronica_90. (2014). Placa Arduino - Uma das grandes evoluções da Eletrônica.
Tratto da http://eletronica90.blogspot.pe/2014/09/placa-arduino-uma-das-
grandes-evolucoes.html
Esquer, M. J. (2012). Microcontroladores ATMega328P. Baja California, Mèxico.
Gygabyte. (2016). GygaByte.com. Tratto da
http://es.gigabyte.com/products/upload/products/3429/schematic.jpg
informaticahoy.com. (2016). Tratto da http://www.informatica-
hoy.com.ar/aprender-informatica/Que-es-el-sistema-operativo.php
Intel. (2013). Desktop Boards, S/PDIF information. . Tratto da
http://www.intel.com/support/sp/motherboards/desktop/sb/cs-032871.htm
Intel. (2016). www.intel.com. Tratto da http://ark.intel.com/products/82932/Intel-
Core-i7-5820K-Processor-15M-Cache-up-to-3_60-GHz?q=i7-5820K
Navas, M. Á. (2016). Professional Review. Tratto da
https://www.profesionalreview.com/2017/01/03/intel-i7-7700k-review/
Pacheco, R. (2009). Interface serie y paralela. Tratto da
http://culturacion.com/2009/10/interface-serie-y-paralela/
Parhami, B. (2007). Arquitectura De Computadoras. De Los Microprocesadores A Las
Supercomputadoras. México: Mc Graw Hill.
Pc, D. d. (2012). Diferencia entre el FSB y DMI. Tratto da
http://www.doctoresdelpc.com/noticias/diferencia-entre-el-fsb-y-dmi/
Pérez, G. (2015). openwebinar. Tratto da https://openwebinars.net/blog/tutorial-
arduino-entradas-analogicas-y-digitales/
perutienda.com. (2016). Placa Madre: La tarjeta madre o motherboard de la PC.
Tratto da https://www.perutienda.pe/placa-madre-la-tarjeta-madre-o-
motherboard-de-la-pc/
Salinas, G. (2010). La cremme de la cremme para móviles. Tratto da
http://www.chw.net/2010/09/samsung-orion-procesador-arm-doble-nucleo-
de-1ghz/
Soderstrom, T. (2010). Portable Performance: Four USB 3.0 Enclosures For Your 2.5”
Drive. Tratto da http://www.tomshardware.com/reviews/usb-3.0-
superspeed-external-enclosure,2597-2.html
Stallings, W. (2006). Organización y arquitectura de computadores. Madrid: Pearson
Education .

60
Stengel, S. (2016). Welcome to the Old Computer Museum! Tratto da
http://oldcomputers.net/indexwp.html
TanenBaum, A. S. (1999). Organización de Computadoras. Un Enfoque estructurado.
México: Mc Graw Hill.
Tchkheidze, M. (2013). Blue Cerca de los circuitos electrónicos. Tratto da
http://es.123rf.com/photo_5243627_blue-cerca-de-los-circuitos-
electronicos-up.html
tomsharware. (2012). www.tomsharware.com. Tratto da www.tomsharware.com
Velasco, I. M. (2015). Mantenimiento de equipos informáticos. Barcelona:
Universidad de Burgos. Tratto da España: Universidad de Burgos p.4
Viejo, C. B. (2005). Electrónica digital. España: Madrid: Paraninfo.
Wikipedia. (2012). PCI slot. Tratto da
http://es.wikipedia.org/wiki/Peripheral_Component_Interconnect
wow.com. (2016). Tratto da wow.com

61
AUTO EVALUACIÓN Nº 2

LEE ATENTAMENTE LAS PREGUNTAS Y SELECCIONA LA RESPUESTA CORRECTA.

1. Familia de Procesadores de Intel que se coloca en un zócalo LGA 1156


a. Pentium IV
b. Pentium M
c. Pentium III
d. Core I7
2. Se denomina memoria de acceso aleatorio por su característica de:
a. Los valores almacenados son aleatorios
b. Se desconoce con anticipación de donde se obtendrán los datos
c. Se generan números al azar para realizar la grabación de los datos.
d. La lectura es directa y no se debe esperar
3. La memoria RAM se usa específicamente como:
a. Zona de almacenamiento permanente
b. Espacio temporal de trabajo del procesador
c. Zona de aparcamiento de los cabezales
d. Permite almacenar los archivos mucho mejor que un disco duro

4. Con respecto a las velocidades de acceso se puede decir que:


a. La ROM es más rápida que la RAM
b. La RAM tiene la misma velocidad que el procesador
c. La ram es más veloz que la ROM
d. La memoria Cache es la más lenta

5. No es una función de la unidad de Control


a. Ejecutar instrucciones
b. Almacenar variables para el procesador
c. Tomar instrucciones desde la Memoria.
d. Interpretar las instrucciones

6. Canal de comunicación exclusivo entre la memoria y el procesador em-


plea una conexión serial
a. KPI
b. MDI
c. FSB
d. Hypertransport

7. En la arquitectura x86 el chipset Sur tiene como misión controlar


a. La RAM
b. El procesador
c. Periféricos
d. La memoria cache

8. Normalmente el FSB es con respecto a la frecuencia de reloj interna


a. Menor
b. Mayor
c. Igual
d. No tiene relación.

9. La memoria Cache mejora la ejecución de los programas por:


i. Emplea un medio de almacenamiento magnético.
ii. Su cercanía al procesador.
iii. El efecto “Localidad de los Programas”.
a. solo iii es cierta
b. sólo i es cierta
62
c. son ciertas ii y iii
d. son ciertas i y iii

10. Procesador de Intel, que se caracteriza por que su arquitectura era


una combinación del Pentium MMX y el Pentium Pro.
a. Pentium I
b. Pentium II
c. Celeron
d. Core I7
e. Pentium IV

63
UNIDAD III: ORGANIZACIÓN DEL PROCESADOR
DIAGRAMA DE ORGANIZACIÓN DE LA UNIDAD III

ORGANIZACIÓN DE LOS APRENDIZAJES


Resultado de aprendizaje de la Unidad III: Al finalizar la unidad, el estudiante
será capaz de proponer e implementar soluciones a problemas computacionales bá-
sicos que impliquen la utilización de un CPU
CONOCIMIENTOS HABILIDADES ACTITUDES
Tema N.° 1: Organización y arqui-  Emplea un Micro-
1. Valora la im-
tectura x86 controlador para
portancia de los
1. Organización del CPU: Caracterís- implementar solu-
sistemas de
ticas clave de procesadores ciones a problemas
microcontrola-
2. La Arquitectura X86: Registros computacionales
dores como
muy específicos
Lectura seleccionada n.° 1 proveedores de
data en siste-
Actividad n.° 1
mas de teleme-
Tannhausser. (2016). Linus prefiere la tría e informa-
arquitectura x86 sobre la ARM. ción
Disponible en
Actividad n.° 2
https://goo.gl/KN2rln

Tema N.° 2: Arquitectura ATMega:


AVR
1. Descripción del ATMega 328 Mo- Control de lectura N°
delos y Características 1
2. Instalación del software
3. Introducción al Entorno de Desa-
rrollo de Arduino
4. Conocimiento del lenguaje Ar-
duino
5. Estructuras de control. Operado-
res y Tipos de dato
6. Entradas y salidas analógicas y
digitales
7. El monitor serial
8. Manejo de Librerías y sensores

Lectura seleccionada n.° 2

Lisergio. (2014). Attiny 85 (“Pequeño


Arduino”), Especificaciones y
programación. Disponible en
https://goo.gl/F0kxyK

Autoevaluación N.° 3
64
Tema N° 1: Organización y arquitectura x86
La arquitectura x86, es una de las más empleadas en computadores de escritorio,
recordemos que ha evolucionado desde un procesador muy básico el 8086 hasta los
actuales Core I7 de quinta generación, el cual en el fondo sigue siendo un 8086.
Otra arquitectura que se está empleando intensivamente sobre todo en aplicaciones
orientadas al Internet del Todo (IOE) es la arquitectura ATMega empleada para la
plataforma de desarrollo Arduino.
Veremos entonces que aplicaciones se podrían dar a ambas arquitecturas.

1. Organización del CPU: Características clave de procesadores


Como sabemos básicamente todo procesador posee mínimamente los siguientes ele-
mentos:

 Unidad de Control
 Unidad Aritmética Lógica
 Registros
 Y Buses Internos

Además, si hablamos de diversas arquitecturas, la diferencia entre una y otra radica


en las instrucciones o Señales eléctricas que puede interpretar y la organización de
sus registros.

Esto se traduce en que, las señales a interpretar deben ser colocadas en los registros
del procesador para que así puedan ser decodificadas y luego ejecutadas por el pro-
cesador. También los datos que requieran los programas, en algún momento deben
ser colocados en los registros.

Características Y Parámetros De Los Procesadores


Cuando se requiere clasificar y caracterizar a los procesadores podemos considerar
parámetros como:
 Frecuencia de reloj
 Tecnología de fabricación
 Número de transistores
 Tensión de alimentación
 Ancho de los registros de la CPU
 Ancho del bus de direcciones
 Tamaño de las memorias caches
 Encapsulado del procesador
 juegos de instrucciones avanzadas que soporta
 consumo de energía medido en Watts.
Para entender cada uno de estos parámetros debemos inicialmente entender el papel
del generador de reloj.

Generador de Reloj:
Es un dispositivo que genera un tren de pulsos en forma periódica, su misión es
sincronizar el trabajo de todos los componentes del computador, eso significa que no
se puede procesar durante todo el tiempo, sólo se puede procesar durante los flancos
bajos (Tiempo de refresco).

65
Tiempo de trabajo

Tiempo de refresco

Figura Nro 52. Generador de Pulsos

Frecuencia de reloj:
Indica la cantidad de Ciclos que ocurren en un segundo, se mide en Hertz o Hertzios.
Determina el número de ciclos por segundo al que puede operar el núcleo de un
Procesador. Se recomienda no emplear como el indicativo para comparar dos proce-
sadores.
En la imagen se aprecia la descripción con referencia a la frecuencia de reloj interna
a la que opera el procesador:

Core i7 7700 , fre-


cuencia de reloj
4.2 GHz

Figura Nro 53. Intel i7-7700k Review en español (Análisis completo) (Navas, 2016)

Tecnología de fabricación

También denominada Litografía, aunque el nombre completo podría expresarse como


Tamaño de o distancia de tecnología de fabricación, expresa la distancia entre dos
elementos o compuertas dentro de un procesador. Se expresa comúnmente en na-
nómetros o micras.
Cuanto menor es la distancia entre los elementos, más pequeños son los transistores
y por lo tanto los electrones deben viajar una menor distancia, consecuentemente el
procesador es más rápido y disipa menos energía
A medida que disminuye la distancia, aparecen problemas tecnológicos. Además, el
coste de desarrollo se incrementa exponencialmente
La disminución en el tamaño de las puertas tiene las siguientes implicaciones:
 Aumento de la densidad de integración (más transistores en el mismo espa-
cio)
 Menor tensión necesaria para la conmutación de dichas puertas
 Posibilidad de aumentar la frecuencia de conmutación de las puertas (Au-
mento de frecuencia de la señal de reloj del micro)

Un nanómetro es : 10 -9
Ejemplos: 1 cabello humano 100000 nm 1 germen 1000 nm

66
1) 2)

Figura Nro 54. 1) Samsung Orion: Procesador ARM doble núcleo de 1GHz 2) Intel® Core™ i7-
5820K 3.3GHz 15MB Smart Cache Box
Fuente: 1) (Salinas, 2010) 2) (Intel, www.intel.com, 2016)

Número de transistores de la CPU


Está íntimamente ligado con la tecnología de fabricación. Los transistores dentro de
la CPU son como las líneas de código de un programa.

 Cuanto menor es la distancia de integración, más pequeños son los transisto-


res y por lo tanto caben más en la misma superficie.
 Cuantos más transistores hay disponibles, más funcionalidad se puede imple-
mentar
 Determina la cantidad de funciones que puede incorporar un procesador: Co-
procesador, FPU, Cache, Predictoras, Controladora de memoria.

Por ejemplo, el Core i 7, emplea tecnología de fabricación de 22 nm y posee 1700


millones de transistores.

Tensión de alimentación
También muy relacionada con el tamaño de los transistores y por lo tanto con la
tecnología de fabricación.

 Cuanto más pequeño son los transistores, menores son las tensiones necesa-
rias para que desempeñen su trabajo.
 Tensiones menores implican menor consumo de energía por transistor
 Esto ha permitido que en los últimos años el consumo de energía se haya
mantenido a pesar de aumentar el número de transistores

Por ejemplo, el Pentium 4 utiliza una tensión de alimentación de 1,52 voltios. El


Corei 7 emplea 1.165 Voltios
Ancho de los registros
Indica si una CPU puede procesar instrucciones de 8, 16, 32 o 64 bits. En realidad,
se refiere al tamaño de los registros de enteros en bits. Los registros de coma flotante
de una CPU de 32 bits son habitualmente de tamaño mayor de 64 bits

 Normalmente coincide con el ancho de los buses de datos de la CPU.


 La mayor parte de las CPUs actuales son de 32 bits, compatibles IA-32 (x86)
y CPUs de 64 bits para el mundo PC.
 En el caso de los procesadores ARM por ejemplo el Cortex- A53 es un pro-
cesador de 64 bits, aunque también puede ejecutar instrucciones de 32 bits.

Tasa de transferencia
Se trata de la velocidad con la que la CPU se comunica con su entorno

67
 La mayor parte de las CPUs actuales se comunican a través del Front Side
Bus (FSB) en el Caso de los modelos a partir de Core I, mediante QuickPath
Interconect QPI, en el caso de los FSB se logran tasa de transferencias de
hasta 3200MB/s y en el caso de los QPI de 6.4 G transferencias.
 Otras alternativas al FSB es el empleo de conexiones punto a punto. Este es
el caso de la tecnología HyperTransport auspiciada por AMD. Esta tecnología
se emplea en los modernos Athlon XP 64 y Opteron

Ancho del bus de direcciones


Indica el número de bits que componen el bus de direcciones de la CPU, por ende,
determina la máxima cantidad de memoria física que se puede direccionar
 Las CPUs x86 de 32 bits actuales tienen 36 líneas de direcciones => un
máximo de 236 = 64 Gbytes de memoria física
 Los Athlon XP y Opteron son de 64 bits y tienen 40 líneas de direcciones =>
un máximo de 240 = 1 Tbyte (terabyte) de memoria física

Tamaño de las caches


Las caches mejoran los tiempos de acceso a memoria. En general, una mayor ca-
pacidad de cache permite que se efectúen menos consultas a la memoria RAM,
consecuentemente se obtienen menores tiempos de respuesta.
 Se pueden encontrar mayormente de 2 tipos: una cache L1 unida a la CPU
y una cache L2 entre la L1 y la memoria principal
 La cache L1 está dividida en una cache de código y una cache de datos para
permitir accesos simultáneos a código y datos.
 La cache L2 es unificada para código y datos.

Encapsulado
Por motivos como: emplear la misma placa para diversidad de procesadores, posi-
bilidad de actualización o recambio en caso de fallas, la CPU no se suelda a la placa
más bien esta se une a la placa base a través de un zócalo.
 El zócalo más empleado anteriormente fue el Pin Grid Array (PGA) o una
variedad de este. Se trata de un zócalo de tipo Zero Insertion Force (ZIF)
 El zócalo más empleado en la actualidad es el LGA, Los procesadores de
Intel de gama alta pasan a usar un socket LGA 1171 los cuales dependiendo
del Chipset soportan hasta procesadores de 7ma generación.

4 5

a) Empaquetado LGA b) empaquetado PGA

4
Diego Svalbard(Mayo 2013). Tipo de sockets para procesadores. Recuperado de:
http://coreducacion-sistemasii.blogspot.com/2012/05/socket-lga.html
5
Pin Grid Array PGA. (12/03/2012). En Wikipedia. http://es.wikipe-
dia.org/wiki/Pin_grid_array
68
a) Socket LGA6 b) Socket PGA7
Figura Nro 55. Procesadores y Sockets

Juegos de instrucciones avanzadas:


Se refieren a las instrucciones diferentes a las instrucciones básicas que el procesador
es capaz de interpretar y ejecutar, por ejemplo, una instrucción multimedia proba-
blemente requiera de varios ciclos de reloj para ser ejecutada empleando instruccio-
nes básicas pero al emplear instrucciones avanzadas para la misma tarea es probable
se requiera únicamente de 1 ciclo de reloj.
 ¡La primera de estas extensiones fueron las MMX, a las que siguieron SSE por
parte de Intel y 3DNow! por parte de AMD.
 Un Core i 7 posee como extensiones: x86, x86-64, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2

DISIPACIÓN TÉRMICA
Uno de las características que más problemas ha ocasionado ha sido el calentamiento
que sufren, el cual tiene relación directa con el tamaño de la tecnología de fabrica-
ción, así mismo hay otros factores:
 El aumento de la escala de integración (mas transistores en la misma su-
perficie) hace que aumente su consumo y por ende la disipación del calor
que provocan.
 Los problemas de calor son proporcionales al voltaje y a la frecuencia de
trabajo y pueden provocar un comportamiento errático del sistema e incluso
la destrucción del micro.
2. La Arquitectura X86: Registros
En una primera aproximación a la arquitectura x86, vemos que emplea registros de
propósito especial, aunque algunos de ellos se pueden también emplear para un uso
general.
El 8086 contiene cuatro registros de datos de 16 bits que son direccionables como
registros de Bytes o como registros de 16 bits, y cuatro registros punteros e índices
de 16 bits. Los registros de datos pueden utilizarse para almacenar datos o para
indicar parámetros a las funciones que deseamos el procesador ejecute.

6
LGA 775. En Wikipedia. http://es.wikipedia.org/wiki/LGA_775
7
Socket PGA370.JPG. En Wikipedia. http://commons.wiki-
media.org/wiki/File:Socket_PGA370.JPG
69
Figura Nro 56. Registros de un procesador con Arquitectura 8086

Ejemplo de un programa básico en assembler:

Figura Nro 57. Programa básico en assembler

El programa de la figura Nº 53 muestra el mensaje Hola en la consola, como se


aprecia se ha declarado que el programa emplea un modelo predefinido (.model
small) que le permite emplear un bloque de código y otro bloque de datos.
En el bloque de datos(.data): se han declarado dos variables:

 Mensaje : variable de tipo double byte, que almacena la cadena de caracteres


Hola, a , 10,9,9,9, todos’, esta necesariamente debe terminar en el símbolo $
que es el indicativo de fin de cadena.
 algo : es una variable que únicamente ha sido declarada pero no inicializada
lo que se ha efectuado con ?.

70
En el bloque de código (.code): Considerando las líneas 09 y 10 lo que se hace es
determinar el inicio del bloque datos en memoria mediante la directiva @data, lo que
se almacena en el registro ax, valor que luego es almacenado finalmente en el regis-
tro DS.
Luego en las líneas 11, 12 y 13: se prepara la impresión de una cadena de carac-
teres lo cual se indica mediante la asignación del valor 9 en el registro AH. La cadena
a imprimir se indica guardando en el registro DX el valor del desplazamiento de la
variable de texto a imprimir, específicamente indicando su desplazamiento.
A continuación, en la línea 13 se interrumpe el trabajo del Procesador mediante la
llamada de la Interrupción 21h que está clasificada como interrupción del Sistema
Operativo.
Finalmente, con las instrucciones 14 y 15 se termina el programa y se le devuelve el
control al Sistema Operativo.

Lectura seleccionada n° 1
Linus prefiere la arquitectura x86 sobre la ARM

Tannhausser. (2016). Linus prefiere la arquitectura x86 sobre la ARM. Disponible en


https://goo.gl/KN2rln

ACTIVIDAD N° 1
Foro de discusión sobre el futuro de la arquitectura X86 y el de la arquitectura ARM
Instrucciones
Ingresa al foro y participa con comentarios críticos y analíticos del tema referentes
las arquitecturas x86 y ARM
 Participa en el foro respondiendo a las preguntas:
¿Quién es Linus Torlvalds?
¿Cuál de las dos arquitecturas te parece tendrá mayor futuro?
¿Por qué en el caso de la entrevista con Linus Torlvalds el prefiere a la ar-
quitectura x86?

71
Tema N° 2: Arquitectura ATMega: AVR
La arquitectura de los procesadores AtMega – AVR es en realidad RISC (conjunto de
instrucciones reducido). Esto quiere decir que su conjunto de instrucciones es muy
reducido en el orden de 30 a 200 instrucciones que se ejecutarán, salvo alguna de
ellas, en el orden de 1 ciclo de máquina.
Los AVR están muy bien optimizada para una rápida ejecución de lenguaje C, es por
este y otros motivos que se le emplea en la plataforma de desarrollo Arduino.

1. Descripción del ATMega 328 Modelos y Características


CPU (Core):
Para mejorar el rendimiento y paralelismo, el AVR usa arquitectura Harvard – es decir
tiene registros y buses separados para instrucciones y datos. Las instrucciones en la
memoria de Programa son ejecutadas con una segmentación de dos etapas. Mientras
una instrucción está siendo ejecutada, la siguiente es pre-capturada de la memoria
de programa (fetch).
Registros contiene 32 registros de propósito general de 8 bits, habilitados para un
acceso rápido.

El AVR posee un conjunto de 32


registros, todos ellos conecta-
dos directamente al ALU, per-
mitiendo acceder independien-
temente a los registros a ser
accedidos en una única instruc-
ción ejecutado en un ciclo de
reloj.
•  Arquitectura RISC!
– 131 instrucciones!
– 32 registros de propósito ge-
neral!
•  Memoria!
– 32 Kbytes de Flash!
– 1 Kbyte de EEPROM!
– 2 Kbytes de SRAM!
•  Frecuencia de hasta 20MHz

Figura Nro 58. Diagrama de Bloques Microcontrolado-


res AVR. (Esquer, 2012)

ARDUINO:
Arduino es una compañía de hardware libre, la cual desarrolla placas de desarrollo
que integran un microcontrolador y un entorno de desarrollo (IDE), diseñado para
facilitar el uso de la electrónica en proyectos multidisciplinarios.
también se le denomina así al hardware, que consiste en una placa de circuito im-
preso con un microcontrolador, normalmente el ATMEL AVR, y puertos digitales y
analógicos de entrada/salida, los cuales pueden conectarse a placas de expansión
(shields) que expanden las características de funcionamiento de la placa Arduino.

72
Figura Nro 59. Elementos de la placa de desarrollo Arduino

La plataforma Arduino posee muchos modelos, pero el que se empleará en esta asig-
natura será el Arduino Uno R3, cuyas características se muestran en la figura Nº 60.

Figura Nro 60. Características del Arduino Uno R3

Los usos que se le pueden dar a la plataforma Arduino son muchos, la ventaja de
emplearla se resume en que los prototipos se crean de forma muy sencilla y rápida.
Al poseer pines de salida y entrada tanto analógicos como digitales, en la figura Nº
61 se muestran algunos usos, específicamente de los pines de salida.

Figura Nro 61. Posibles usos de los pines de salida

73
Existen muchas versiones de Arduino, que finalmente se diferencian por el número
de pines Numero de pines de entrada/salida, Factor de forma o tamaño y el Proce-
sador
Algunos de ellos son:
 Leonardo
 Due
 Micro
 LilyPad
 Explora

Figura Nro 62. Placas Arduino (Electronica_90, 2014)

2. Instalación del software


Lo primero que debemos efectuar es descargar el instalador del IDE de Arduino desde
la siguiente dirección: https://www.arduino.cc/en/Main/Software

Figura Nro 63. Interfaz Web de descarga de Arduino

Luego de descargar el ejecutable seguir las instrucciones, en realidad el proceso es


muy intuitivo, pero en caso de requerir alguna guía puede visitar el siguiente link:
https://aprendiendoarduino.wordpress.com/2016/03/30/instalacion-del-ide-ar-
duino/
74
3. Introducción al Entorno de Desarrollo de Arduino
Luego de instalar el IDE de Arduino ya se podrá emplear,
Verificar: Active esta
opción cuando haya
culminado un Sketch y
desee verificar si está
correctamente escrito.

Subir al controla-
dor: mediante esta
opción se compila el
código fuente y se en-
vía el sketch al Con-
trolador para que se
ejecute.

Monitor Serial: Actí-


velo cuando desee te-
ner acceso al monitor
serial para ingresar
valores o verificar sa-
lidas.

4. Conocimiento del lenguaje Arduino


Bases de programación en Arduino
Los programas de Arduino poseen básicamente dos secciones, setup y loop.
setup(): Esta sección se emplea para configurar el modo de los pines sean de salida
o entrada, por ejemplo para motores, salidas como motores, para sensores de En-
trada. Se ejecuta únicamente una vez durante la ejecución de un programa.

Figura Nro 64. Código ejemplo de setup

75
En la figura Nº 64 se aprecia cómo se configuran los pines 9 y 8 para salida(OUTPUT)
y entrada(INPUT).

loop(): esta sección se efectúa repetitivamente durante un programa, así que se


puede entender como el main() del programa que indica que se debe efectuar, tam-
bién se pueden colocar dentro del loop llamadas a funciones que se requiere se eje-
cute en cada repetición del loop.

Figura Nro 65. Ejemplo de bloque loop

De acuerdo al código de la figura Nº 64, se entiende que la operación se realiza


empleando el pin número 9, colocando su valor primero en HIGH y luego de una
espera de 1000 milisegundos debe pasar a un estado de LOW, es decir apagado.
Cuando la secuencia del programa llega a la llave de fin de loop, inmediatamente se
regresa al inicio del loop con lo cual el loop se repite indefinidamente.

5. Estructuras de control. Operadores y Tipos de dato.


El lenguaje de programación de Arduino es una variación de C, que se adaptó con
instrucciones para el manejo especifico del microcontrolador.

Estructuras de control condicional IF:


Esta estructura verifica el resultado de una prueba lógica y de acuerdo al resultado
de la validación se cambia el flujo del programa. Su sintaxis es la siguiente:

if (condición)
{
instrucción 1 ; Operadores condicionales
instrucción 2 ; Igual que: ==
................ Distinto de: !=
} Mayor que: >
else Mayor o igual: >=
{ Menor que: <
instruccion20 ; Menor o igual: <=
instruccion21 ;
..............
}

Ejemplo de aplicación:

int contador = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if(contador < 10)

76
{
Serial.println(contador);
}
contador = contador + 1;
}

De acuerdo al código presentado, el programa declara una variable denominada con-


tador de tipo entero y con el valor inicial 0.
En el bloque de setup(configuración) solicitamos se inicie la comunicación serial a
una taza de 9600 baudios.
En el bloque de loop, verificamos si el valor de la variable contador es menor a 10,
de ser ese el caso entonces en el monitor serial se imprime el valor actual de la
variable contador.
Luego el valor de contador se incrementa en uno. Finalmente se llega al final del
loop, con lo cual se verifica el nuevo valor de la variable contador. Esto va a continuar
indefinidamente pero sólo se imprimirán los 10 primeros valores de la variable con-
tador desde 0 hasta 9. Luego en el monitor serial no se imprimirá ningún mensaje.

Ejemplo de Blink de 3 LEDS


Veamos un ejemplo donde la idea es hacer parpadear 3 leds, una primera forma de
solucionar esto sería mediante el código de la Figura Nº

Figura Nro 66. Código y circuito para enceder 3 leds

El problema con la implementación de la figura Nº 65 es que en el caso se requiera


efectuar el pardeo de más de 3 leds por ejemplo 8 tendríamos que agregar más
código, aproximadamente unas 48 líneas más.
Una segunda implementación para solucionar este mismo problema se muestra en
la Figura Nº 66, donde se aprecia cómo se ha empleado la condicional IF para hacer
que el uso del código sea más eficiente justamente aprovechando la habilidad de
los procesadores de efectuar miles de instrucciones en un segundo.

77
Figura Nro 67. Parpadear 3 leds empleando IF

6. ENTRADAS Y SALIDAS ANALÓGICAS Y DIGITALES.


Forma de Conectar una entrada a un pid digital

Figura Nro 68. Entrada digital

En el caso se requiera verificar si una entrada digital tiene o no un pulso el esquema


del circuito a emplear se muestra en la figura Nº 67.

Ejemplo de detección de pulso por entrada Digital


Ésta es la forma más sencilla de entrada con sólo dos posibles estados: encendido o
apagado. En este ejemplo se lee un simple switch o pulsador conectado a PIN2.
Cuando el interruptor está cerrado el pin de entrada se lee ALTO y encenderá un LED
colocado en el PIN13.

Figura Nro 69. Circuito a emplear

El programa empleado se muestra en la figura Nº 69. En este caso se considera el


uso de un Switch pulsador y de un potenciómetro (sólo para utilizarlo como resisten-
cia de 10 K Ohm).
Al presionar el pulsador provoca que cambie el estado del pin 2 al valor HIGH(alto),
haciendo que los 3 leds parpadeen secuencialmente, repito mientras se mantenga
presionado el pulsador.

78
Figura Nro 70. Detectando entrada digital

Entradas Analógicas

Los pines de A0 a A5 son entradas analógicas, pueden leer valores de tensión de 0 a


5 Voltios con una resolución de 1024 (10 bits), es capaz de detectar variaciones en
el nivel de la señal de entrada de casi 5 mV.

Figura Nro 71. Entradas analógicas. (Pérez, 2015)

La función analogRead( )
Para efectuar la lectura empleamos la función:

Variable=analogRead(numero_pin)

Considera que esta función devolverá un valor en el rango de 0 a 1023 de acuerdo


al nivel de la señal de entrada. En el caso de tener una entrada nula obtendremos el
valor 0, para una entrada de 2.5 Voltios 511, es decir la mitad de 1023 y para 5
Voltios 1023.

Midiendo la temperatura con el Sensor M35


El LM35 es un sensor lineal, de precisión de 0.5 ºC y una sensibilidad de 10 mV/ºC.

79
Figura Nro 72. Configuración de los pines del LM35

Considera conectar el pin +Vs va al pin 5V, el pin Vout al pin que designemos para
la lectura, por ejemplo el Analog 0, y finalmente el GND a tierra del Arduino.

Figura Nro 73. Circuito medición de temperatura con el

El programa a emplear es el siguiente:

float temperatura;// variable para almacenar el valor leído


int pin_entrada = 0;// designamos el pin Analog 0 para entrada
void setup()
{
Serial.begin(9600);//
}
void loop()
{
temperatura = analogRead(pin_entrada); // lectura del pin A0
temperatura = (temperatura/1023*5/0.01); //convertir a grados
Serial.print(temperatura)
Serial.print(" grados centígrados \n");
delay(1000);
}

7. MONITOR SERIAL.
El monitor serial es una interface software que permite visualizar el estado del puerto
serie, como también enviar datos al puerto serie a través de esta misma interface.
Para activarlo únicamente debe presionar la combinación de teclas: Ctrl + Shit + m

80
O efectuar clic sobre el ícono:

Por ejemplo, con referencia al ejemplo anterior deberíamos tener una salida como se
muestra:

Figura Nro 74. El monitor serie

8. El Manejo de librerías y sensores


Una librería es una colección de programas que poseen una función específica que
puede ser empleada desde otro programa. Por ejemplo para mostrar texto en una
pantalla LCD, o la librería que calcula la posición de un sistema de navegación GPS.
Algunas librerías se pueden utilizar sin necesidad de agregar al Arduino algún otro
dispositivo, mientras que otras requieren componentes electrónicos adicionales, de-
nominados “shields” (escudos = componentes adicionales de mayor o menor com-
plejidad, pero que cubren una función específica).
Hay tres diversos tipos de librerías de Arduino:
base, estándar, y contribuciones (“contributed librairies”).

LIBRERÍA DE BASE (“CORE LIBRARY”)


La librería de base (“core”) es una de las grandes ventajas de la plataforma Arduino,
al hacer accesible a todos los usuarios el uso del microcontrolador ATMega. Los crea-
dores de Arduino desarrollaron la librería base considerando las peticiones de los
estudiantes, por ejemplo, para leer el valor de un pin digital basta con usar la función
digitalRead.

Librerías estándar

Se instalaron en el equipo que ejecuta el Ide de Arduino en el momento que se instaló


el IDE. Para incluir una librería basta con añadir una declaración #include al co-
mienzo del sketch.

#include <LiquidCrystal.h>

El nombre de la librería debe ir limitado por los corchetes menor/mayor: < y >, fíjate
que la línea no termina en punto y coma (;).

A continuación, las librerías estándar:

81
1. Librería ArduinoTestSuite
2. Librería EEPROM
3. Librería SD
4. Librería Ethernet
5. Librería Firmata
6. Librería LiquidCrystal
7. Librería Servo
8. Librería Stepper
9. Librería SPI
10. Librería Wire
11. Librería SoftwareSerial

Librería Ethernet

La librería Ethernet simplifica el acceso a funciones TCP/IP y permitirá comunicar


Arduino con el Internet. Esta librería está diseñada para interactuar con placas basa-
das en WIZnet W5100. La biblioteca de Ethernet permite configurar el Arduino como
servidor, o como cliente.

Librería LiquidCrystal

La mayor parte de las pequeñas pantallas LCD se basan en el Hitachi HD44780, esta
puede servirnos para mostrar diversidad de datos y mensajes de situación del sis-
tema. La librería LiquidCrystal, tiene las siguientes funciones disponibles en la libre-
ría.

Función Descripción

begin Establece las dimensiones en filas y columnas de la pantalla LCD


LiquidCrystal Inicializa la librería y determina los pins usados para comunicar con la pantalla LCD
print Visualiza datos en la pantalla LCD
clear Borra los contenidos de la pantalla LCD
setCursor Posiciona el cursor sobre la pantalla

Librería servo
La librería Servo permite a Arduino controlar hasta 12 motores servos empleando
Arduino Uno R3, y 48 si se utiliza Arduino Mega. Estas son las principales funciones
de la Liberia Servo.

Función Descripción

attach Asigna el servo a un pin.


Attached Verifica que el servo está conectado al pin
Detach Desconecta el servo del pin.
Read Lee el ángulo del servo.
Write Hace girar el eje del servo al ángulo especificado. Entre 0 y 180 en un servo
clásico. En un servo de rotación continua establece la velocidad de rotación.
writeMicroseconds Gira el eje del servo un arco expresado en microsegundos.

Ojo: Al emplear la librería Servo se deshabilita la función analogWrite en los pines


9 y 10 del PWM. En el Arduino Mega, se deshabilita analogWrite en los pines 11
y 12 si estamos controlando más de 12 servos.

La librería Stepper

82
Un motor de pasos gira su eje en pasos o Step, así que un motor con una especifi-
cación de 200 pasos necesitaría 200 pequeños giros angulares para completar una
revolución.

360 grados/1,5 grados por paso = 240 pasos

Función Descripción

Stepper Inicializa la librería Stepper y establece el número de pasos por revolución.


setSpeed Establece la velocidad de rotación del motor en revoluciones por minute (RPM)
step Gira el motor el número de pasos indicado. Un número positive gira en un sentido y uno
negativo en el contrario.

LECTURA SELECCIONADA n° 2

Attiny 85 (“Pequeño Arduino”) Especificaciones y programación.

Lisergio. (2014). Attiny 85 (“Pequeño Arduino”), Especificaciones y programación.


Disponible en https://goo.gl/F0kxyK

ACTIVIDAD N° 2
Foro de discusión sobre la aplicación de sistemas embebidos
Instrucciones
Ingresa al foro y participa con comentarios críticos y analíticos del tema referentes
al uso de los sistemas embebidos
 Participa en el foro respondiendo a las preguntas:
¿Qué es un sistema embebido? Indica un ejemplo, Ojo se califica que el
ejemplo no se repita en todo el foro
¿Qué plataforma es la mejor para emplear como sistema de alarma para un
automóvil? Sustente. Puede considerar: Arduino, PIC pcchips, freedom, Intel
Edison.

83
PRODUCTO ACADÉMICO Nº 3

Elaborar un circuito que permita emplear un LCD, 5 leds y dos pulsadores,


para recrear un juego de adivinanza.

INSTRUCCIONES:
i. El juego debe tener el siguiente comportamiento:
a. Al iniciar se ha generado un número aleatorio que normalmente no se muestra
al usuario, este número se muestra si presionamos un pulsador.
b. Debe mostrar en la pantalla LCD el mensaje: Ingrese un número (este se debe
ingresar a través del puerto serial).
c. Se supone que el número de intentos está configurado en n=5.
d. En el caso el número ingresado por el usuario sea mayor al número aleatorio
generado se debe mostrar el mensaje “Te excediste!”. Te quedan n-1 inten-
tos. Así mismo la cantidad de leds encendidos debe disminuir en 1 (Ir apa-
gándose)
e. En el caso el número ingresado por el usuario sea menor al aleatorio gene-
rado, se debe mostrar el mensaje “Te falta!”. Te quedan n-1 intentos. Así
mismo la cantidad de leds encendidos debe disminuir en 1 (Ir apagándose).
f. Si no se hubiera adivinado el número entonces se debe retornar al punto b.
g. En el caso que se adivinó el número el LCD debe mostrar el mensaje Ganaste¡,
se recomienda emplear efectos de luces o animación que den a entender que
se ha ganado, luego se retorna al punto a.
h. Si se desea ver cuál fue el numero generado se puede presionar el primer
botón pulsador
i. Si se desea ver el nombre del autor se debe presionar el segundo pulsador.

Elementos a entregar:

1. Diseñe su proyecto con la ayuda de fritzzing o directamente con 123Circuits.


2. Grabe un video donde explica y demuestra el funcionamiento de su solución.
3. Suba al aula virtual el código del sketch empleado, conjuntamente con el link
de youtube, dayli motion u otro servidor de videos que crea conveniente, con
tal que el video tenga caracter privado. El video subido debe tener como
título Proyecto Juego Adivina – NOMBRE DEL ESTUDIANTE. Es importante
que el estudiante describa su proyecto y explique su funcionamiento.

84
GLOSARIO DE LA UNIDAD III

Microcontrolador: circuito integrado programable, capaz de ejecutar las órdenes


grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales
cumplen una tarea específica. Un microcontrolador incluye en su interior las tres
principales unidades funcionales de una computadora: unidad central de procesa-
miento, memoria y periféricos de entrada/salida.
Sketch:. Se denominan así a los programas creados para la plataforma Arduino,
deben tener la extensión INO.
NXP Freedom: es una Plataforma de desarrollo de costo bajo, fabricada por NXP
Semiconductor es un sistema de desarrollo y evaluación rentable, de bajo consumo
y pequeña posee un programador flash de modo de dispositivo de almacenamiento
masivo y fácil de usar, un puerto serial virtual y capacidades de programación clásica
y de control de ejecución.

85
BIBLIOGRAFÍA DE LA UNIDAD III

AMD. (s.d.). Características básicas de la arquitectura del procesador AMD Sempron


. Tratto da
http://www.amd.com/es/products/desktop/processors/sempron/Pages/AMD
-sempron-processor-key-architectural-features.aspx
Aragonesa, P. E. (2016). DEMO E-DUCATIVA CATEDU. Tratto da http://e-
ducativa.catedu.es/44700165/aula/archivos/repositorio/4750/4923/html/ind
ex.html
Cedrick. (2012). Terminan el Súper computador Cray XK7 “Titan” de 20 PetaFlops en
el Oak Ridge National Laboratory. Tratto da
http://www.madboxpc.com/terminan-el-super-computador-cray-xk7-titan-
de-20-petaflops-en-el-oak-ridge-national-laboratory/
Cruz, A. (2015). https://electronilab.co. Tratto da
https://electronilab.co/tutoriales/tutorial-de-uso-driver-dual-l298n-para-
motores-dc-y-paso-a-paso-con-arduino/
Dunster, I. (1990). A Honeywell-Bull DPS 7 mainframe.
EDITORIAL, P. (2016). http://www.planetasaber.com. Tratto da
http://www.planetasaber.com/theworld/gats/seccions/cards/default.asp?pk
=782&art=59
Eguia, J. B. (2008). Arquitectura de ordenadores. Madrid España: Editorial
Independiente.
Eguia, J. B. (2008). Arquitectura de ordenadores. Madrid: Editorial Independiente.
Electronica_90. (2014). Placa Arduino - Uma das grandes evoluções da Eletrônica.
Tratto da http://eletronica90.blogspot.pe/2014/09/placa-arduino-uma-das-
grandes-evolucoes.html
Esquer, M. J. (2012). Microcontroladores ATMega328P. Baja California, Mèxico.
Gygabyte. (2016). GygaByte.com. Tratto da
http://es.gigabyte.com/products/upload/products/3429/schematic.jpg
informaticahoy.com. (2016). Tratto da http://www.informatica-
hoy.com.ar/aprender-informatica/Que-es-el-sistema-operativo.php
Intel. (2013). Desktop Boards, S/PDIF information. . Tratto da
http://www.intel.com/support/sp/motherboards/desktop/sb/cs-032871.htm
Intel. (2016). www.intel.com. Tratto da http://ark.intel.com/products/82932/Intel-
Core-i7-5820K-Processor-15M-Cache-up-to-3_60-GHz?q=i7-5820K
Navas, M. Á. (2016). Professional Review. Tratto da
https://www.profesionalreview.com/2017/01/03/intel-i7-7700k-review/
Pacheco, R. (2009). Interface serie y paralela. Tratto da
http://culturacion.com/2009/10/interface-serie-y-paralela/
Parhami, B. (2007). Arquitectura De Computadoras. De Los Microprocesadores A Las
Supercomputadoras. México: Mc Graw Hill.
Pc, D. d. (2012). Diferencia entre el FSB y DMI. Tratto da
http://www.doctoresdelpc.com/noticias/diferencia-entre-el-fsb-y-dmi/
Pérez, G. (2015). openwebinar. Tratto da https://openwebinars.net/blog/tutorial-
arduino-entradas-analogicas-y-digitales/
perutienda.com. (2016). Placa Madre: La tarjeta madre o motherboard de la PC.
Tratto da https://www.perutienda.pe/placa-madre-la-tarjeta-madre-o-
motherboard-de-la-pc/
Salinas, G. (2010). La cremme de la cremme para móviles. Tratto da
http://www.chw.net/2010/09/samsung-orion-procesador-arm-doble-nucleo-
de-1ghz/
Soderstrom, T. (2010). Portable Performance: Four USB 3.0 Enclosures For Your 2.5”
Drive. Tratto da http://www.tomshardware.com/reviews/usb-3.0-
superspeed-external-enclosure,2597-2.html
Stallings, W. (2006). Organización y arquitectura de computadores. Madrid: Pearson
Education .

86
Stengel, S. (2016). Welcome to the Old Computer Museum! Tratto da
http://oldcomputers.net/indexwp.html
TanenBaum, A. S. (1999). Organización de Computadoras. Un Enfoque estructurado.
México: Mc Graw Hill.
Tchkheidze, M. (2013). Blue Cerca de los circuitos electrónicos. Tratto da
http://es.123rf.com/photo_5243627_blue-cerca-de-los-circuitos-
electronicos-up.html
tomsharware. (2012). www.tomsharware.com. Tratto da www.tomsharware.com
Velasco, I. M. (2015). Mantenimiento de equipos informáticos. Barcelona:
Universidad de Burgos. Tratto da España: Universidad de Burgos p.4
Viejo, C. B. (2005). Electrónica digital. España: Madrid: Paraninfo.
Wikipedia. (2012). PCI slot. Tratto da
http://es.wikipedia.org/wiki/Peripheral_Component_Interconnect
wow.com. (2016). Tratto da wow.com

87
AUTOEVALUACIÓN Nº 3

LEE ATENTAMENTE Y SELECCIONA LA RESPUESTA CORRECTA. CADA PREGUNTA VALE


2 PUNTOS.
1. Marcador de un programa en assembler que permite indicar una zona del pro-
grama hacia donde poder efectuar saltos.
A) While
B) goto
C) JZ
D) Jmp
E) Etiqueta
2. El empleo de Buffers en sistemas de entrada salida:
A) Permite direccionar la Memoria aleatoriamente.
B) Se emplea en conexiones punto a punto.
C) Controla las transferencias seriales desde dispositivos remotos.
D) Permite igualar las velocidades de los dispositivos.
E) Controla la transferencia de datos hacia/desde dispositivos.
3. En un BUS el problema fundamental a solucionar es:
A) La alta transferencia de datos.
B) Las posibilidades de colisión de datos.
C) Las incompatibilidades de conectores.
D) El formato de las instrucciones a transmitir.
E) Mantener un flujo constante de datos.
4. Elemento del procesador encargado de interpretar la instrucción a ejecutar:
A) Registro de instrucciones.
B) Unidad de control.
C) Registro acumulador.
D) Program Counter.
E) Registros flag.
5. Una interrupción requiere para su ejecución:
A) Cancelación de la compilación de un programa.
B) Solicitud de atención por parte del procesador.
C) Guardar el contexto del proceso actual
D) Eliminar los bloques de memoria no usados.
E) Actualizar cada uno de los registros del procesador.
6. Elemento del Procesador encargado de almacenar los valores con los que operará
A) ALU
B) Memoria RAM
C) Registro
D) MAR
E) PC
7. Qué hace esta instrucción: int led=9;?
a. Únicamente define la variable led como numérica entera.
b. Define la variable led como numérica entera y la asigna el valor 9.
c. Asigna el valor 9 a la variable led y la inicializa con el valor decimal 9
d. Hace que el led de posición 9 se encienda
e. Hace que el led de posición 9 se apague.
8. ¿Qué función emplearías para asignar eficientemente varios pines como salida?
a. La función for.
b. Usar la función map
c. La función for y setup
d. La función loop.
e. La función for y loop
9. ¿Qué instrucción emplearías para cambiar los parámetros de una medición?
88
a. La función map.
b. La función loop.
c. La función if.
d. La función setup.
e. La función meter
10. ¿Qué tipo de variable necesito para almacenar una letra?
a. int
b. char
c. float
d. byte
e. string

89
UNIDAD IV: PROCESADOR Y SU ENTORNO

DIAGRAMA DE ORGANIZACIÓN DE LA UNIDAD IV

ORGANIZACIÓN DE LOS APRENDIZAJES


Resultado de aprendizaje de la Unidad IV:
Al finalizar la unidad, el estudiante será capaz de implementar soluciones de software
que permitan interactuar con un microcontrolador.
CONOCIMIENTOS HABILIDADES ACTITUDES
Tema N.° 1: Arduino, C# y Moto-
1. Emplea lenguajes de Es consciente de
res
programación de alto la importancia
1. Uso de C# con Arduino.
nivel e interfaces gráfi- de aplicar medi-
2. Manejo de motores: Servo, DC
cas para interactuar das de seguridad
y Motor de pasos. con un microcontrola- en las comunica-
Lectura seleccionada N.° 1 dor. ciones inalám-
bricas
Programación de un ESC con Ar- Actividad N.° 1
duino. (2016). Disponible en 2. Crea una solución a un
http://robologs.net/2016/02/01/pro- problema computacio-
gramacion-de-un-esc-con-arduino/ nal que requiera el em-
pleo de conexión
Tema N.° 2: Comunicación inalám- inalámbrica.
brica Actividad N.° 2
1. Comunicación por bluetooth
2. Evaluando la performance del
sistema Control de lectura N° 4
Lectura seleccionada N.° 2
Banafa, A. (2016). 10 predicciones
sobre el futuro de Internet de las
cosas. Disponible en
https://goo.gl/j1UCBR
Autoevaluación de la Unidad
IV

90
TEMA N° 1: Arduino, C# y Motores

Arduino puede recibir comandos desde otros dispositivos, como también enviar datos
mediante su puerto Serie.
A pesar de no tratarse de un puerto de alta velocidad es los sufrientemente rápido
para muchas aplicaciones.
Esto da la posibilidad que un Arduino sea posible de comandar mediante diversidad
de lenguajes de programación como C#, Java, Python.

1. Uso de C# con Arduino.


En el caso se requiera enviar comandos a Arduino desde una PC, se puede optar por
emplear el puerto Serie, es decir desde C# enviaremos datos hacia el puerto Se-
rie(COM x) que se haya asignado al controlador de Arduino.
Para ello debemos seguir los siguientes pasos:

ENCENDER Y APAGAR UN LED


Para este ejemplo vamos a crear un formulario con dos botones de ON y OFF, que
permita encender el LED integrado de la placa de Arduino, en este caso el conectado
al Pin13.
Iniciamos Visual Studio, y creamos un nuevo proyecto de C#. Para ello pulsamos en
File/New/Project.
Elegimos el template “Windows Form Application”, la ubicación en la que queremos
guardarlo en nuestro disco duro y como nombre del proyecto “oNoFF”.

Figura Nro 75. Iniciando un proyecto en Visual Studio

Se abrirá un formulario vacío, que será la ventana principal de nuestro ejemplo. In-
mediatamente Arrastramos desde el la caja de herramientas dos botones
hasta el Form, y los acomodamos como se muestra en la figura Nº

91
Figura Nro 76. Botones de tipo Button agregados

Dejamos los valores como muestra la siguiente tabla.


Elemento Propiedad Name Propiedad Text
Formulario frmMain Encendido básico
Button1 btnOn ON
Button2 btnOff OFF

Figura Nro 77. Configurando los controles agregados

Agregamos un control Puerto Serie de la siguiente forma, elegimos la categoría Com-


ponentes en la caja de herramientas y arrastramos el control SerialPort al formulario,
al ser este un componente no visible no interesa donde lo dejemos.

92
Figura Nro 78. Agregado un control SerialPort

Ahora debemos configurar el control SAerialPOrt1 que acabamos de agregar, en la


ventana de propiedades efectuamos los cambios:

Corresponde al número de
puerto COM que se hay
asignado al Arduino

Figura Nro 79. Seleccionado el puerto serial para BlueTooth

Ahora podemos agregar el código de C#, para ello efectuamos doble clic sobre el
botón de On e insertamos el código que se muestra a continuación, fíjate que Visual
Studio crea automáticamente el link al evento CLIC del botón ON, es decir si es ne-
cesario podrías agregar el código en otro evento diferente al evento CLIC.

93
Figura Nro 80. Código C# a agregar

Finalmente debemos programar el sketch de Arduino que responda al carácter 1 o 0


que hemos enviado al puerto serial.

Figura Nro 81. Sketch que lee el puerto Serial


94
2. Manejo de motores: servo, dc y motor de pasos.
Arduino no puede controlar directamente motores sean estos de Corriente conti-
nua(DC), o motores de paso, además está restringido a manejar motores servos que
requieran hasta 50mA. Por este motivo se debe emplear un circuito que permite
manejar mayores valores de corriente, en este caso puede ser el L293d o un shield
que incorpore este integrado.

L293D
• El L293D de Texas Instruments es un circuito integrado que permite controlar
motores de corriente continua o bipolares de pasos (Bipolar stepping motors).
• Es un puente en H cuádruple, integrado en un único chip.
• Conduce corrientes bidireccionales de hasta 1 amperio en el modelo L293 y
hasta 600 mA en el modelo L293D y con tensiones que van desde los 4.5V
hasta los 36V en ambos modelos.
• Podemos utilizarlo para controlar componentes como: motores de corriente
continua, relés, motores de paso bipolares, solenoides en general y cualquier
carga que requiera una alta corriente y tensión.
.

Figura Nro 82. El Ld93d y su diagrama detallado de circuito interno

Shield L298d
Para facilitar el uso del driver L292d se han creado shields, mostramos un shield que
emplea el circuito L298D.
Este shield cuenta con componentes adicionales, entre ellos diodos de protección y
un regulador LM7805 que suministra 5V a la parte lógica del integrado L298N. Cuenta
con jumpers de selección para habilitar cada una de las salidas del módulo (A y B).
La salida A está conformada por OUT1 y OUT2 y la salida B por OUT3 y OUT4. Los
pines de habilitación son ENA y ENB respectivamente

Figura Nro 83. Tabla de control y componentes del L298d

Cuando el jumper de selección de 5V se encuentra activo, el módulo permite una


alimentación de entre 6V a 12V DC. Como el regulador se encuentra activo, el pin
marcado como +5V tendrá un voltaje de 5V DC. Este voltaje se puede usar para
95
alimentar la parte de control del módulo ya sea un microcontrolador o un Arduino,
pero recomendamos que el consumo no sea mayor a 500 mA.
Cuando el jumper de selección de 5V se encuentra inactivo, el módulo permite una
alimentación de entre 12V a 35V DC. Como el regulador no está funcionando, ten-
dremos que conectar el pin de +5V a una tensión de 5V para alimentar la parte lógica
del L298N. Usualmente esta tensión es la misma de la parte de control, ya sea un
microcontrolador o Arduino.

CONTROLANDO MOTORES DE DC

Figura Nro 84. Esquema electrónico giro de motor DC.

Inicialmente controlaremos el giro de un motor de DC, este programa solamente hará


que el motor gire en un sentido durante 4 segundos luego se detenga durante medio
segundo y finalmente gire en sentido contrario durante otros 4 segundos.

Sketck de Arduino

-
CONTROL DE VELOCIDAD DE MOTORES DE DC
Si queremos controlar la velocidad del motor, tenemos que hacer uso de PWM. Este
PWM será aplicado a los pines de activación de cada salida o pines ENA y ENB res-
pectivamente, por lo tanto, los jumper de selección no serán usados.

96
Figura Nro 85. Circuito para controlar la velocidad de un motor DC
Fuente:
int IN3 = 5; // Input3 conectada al pin 5
int IN4 = 4; // Input4 conectada al pin 4
int ENB = 3; // ENB conectada al pin 3 de Arduino
void setup()
{
pinMode (ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop()
{
//Preparamos la salida para que el motor gire en un sentido
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
// Aplicamos PWM al pin ENB, haciendo girar el motor, cada 2 seg aumenta la velocidad
analogWrite(ENB,55);
delay(2000);
analogWrite(ENB,105);
delay(2000);
analogWrite(ENB,255);
delay(2000);
// Apagamos el motor y esperamos 5 seg
analogWrite(ENB,0);
delay(5000);
}

Controlando un ServoMotor
El servomotor tiene 3 cables, Alimentación ,
Masa y la señal. Los colores son los siguientes:
 Rojo - Alimentación(Normalmente 5 V
aunque pueden ser mas)
 Negro o Marrón -Masa
 Blanco, Naranja o amarillo- Señal de con-
trol (pulso enviado al servomotor).
Básicamente un servomotor es un motor de co-
rriente continua con un potenciómetro que le
permite saber la posición en la que se encuentra
y así poder controlarla.
Para controlar el servomotor se le envía pulsos cada 20 ms es decir 50Hz. La anchura
del pulso es lo que codifica el ángulo de giro, es decir lo que se conoce como PWM,

97
codificación por ancho de pulso. Esta anchura varía según el servomotor, pero nor-
malmente va entre 0.5 y 2.5 ms aunque pueden variar.
Dependiendo del tamaño del servo y su consumo es posible que no puedas alimen-
tarlo desde tu placa Arduino, en ese caso es necesario una fuente de 5V indepen-
diente para poder moverlo, en mi caso uso un micro servo por lo que consume poca
corriente y se puede alimentar directamente por el Arduino . Sobre el peso que pue-
den levantar se puede deducir con el par del servo. Normalmente los servos indican
el par o torque que pueden realizar para un servo estándar suele ser 5kg/cm es decir
puede mover 5kg a 1 cm de distancia. En caso de querer mover lo a 5 cm el servo
solo podrá mover 1kg

Figura Nro 86. Circuito para controlar un Servo


#include <Servo.h> //incluir librería de control de servo
byte val = 0; Servo servo1;
byte pos = 0;
void setup() {
Serial.begin(9600);
servo1.attach(9); //Asignamos el servo al PIN 9
servo1.write(0); //Movemos el servo a 0 grados
}
void loop() {
if (Serial.available())
{
val=Serial.read();//Cargamos el valor de grados en val
Serial.flush(); //Limpiamos el buffer
}
while(pos < val)// mientras pos sea más pequeño que val
{
pos++;
servo1.write(pos);// Movemos el servo a ese grado
delay(25);
}
while(pos > val) // mientras pos sea más grande que val
{
(25); // Paramos el programa 25ms
} pos–;//
servo1.write(pos); // Movemos el servo a ese grado
delay(25);
}
}

98
Arduino Motor de pasos
Un motor paso a paso (también llamado stepper) es un dispo-
sitivo electromagnético que convierte impulsos eléctricos en
movimientos mecánicos de rotación. La principal característica
de estos motores es que se mueven un paso por cada impulso
que reciben. Normalmente los pasos pueden ser de 1,8º a 90º
por paso, dependiendo del motor. Por ejemplo: un motor paso
a paso que se mueve 2º cada paso, quiere decir que para com-
pletar una vuelta (360º) tendrá que dar (360º/2ºpor paso) 180
pasos.
Son motores con mucha precisión, que permiten quedar fijos en una posición (como
un servomotor) y también son capaces de girar libremente en un sentido u otro (como
un motor DC).
Hay tres tipos de motores paso a paso:
-Motor paso a paso de imán permanente (los que usaremos en este tutorial).
-Motor paso a paso de reluctancia variable.
-Motor paso a paso hibrido.
Los Motores paso a paso están formados por dos partes:
-El estator es la parte fija del motor donde sus cavidades van depositadas las bobi-
nas.
-El rotor es la parte móvil del motor construido por un imán permanente.
Secuencia para controlar motores paso a paso Bipolares
Un motor paso a paso bipolar necesita invertir la corriente que circula por sus bobinas
en una secuencia determinada para provocar el movimiento del eje.
Paso Bobina 1A Bobina 1B Bobina 2A Bobina 2B
Paso 1 1 0 1 0
Paso 2 1 0 0 1
Paso 3 0 1 0 1
Paso 4 0 1 1 0
Secuencia para controlar motores paso a paso Unipolares
Hay tres secuencias para controlar los motores paso a paso unipolares
Simple o wave drive: Es una secuencia donde se activa una bobina a la vez. Esto
hace que el motor tenga un paso más suave, pero por el contrario tenga menos
torque y menos retención.
Paso Bobina A Bobina B Bobina C Bobina D
Paso 1 1 0 0 0
Paso 2 0 1 0 0
Paso 3 0 0 1 0
Paso 4 0 0 0 1
Normal: Es la secuencia más usada y la que recomiendan los fabricantes. Con esta
secuencia el motor avanza un paso por vez y siempre hay dos bobinas activadas. Con
esto se obtiene un mayor torque y retención.
Paso Bobina A Bobina B Bobina C Bobina D
Paso 1 1 1 0 0
Paso 2 0 1 1 0
Paso 3 0 0 1 1
Paso 4 1 0 0 1

99
Figura Nro 87. Controlando Motores de paso. (Cruz, 2015)

Código de Arduino
El código de Arduino hace girar el motor paso a paso una vuelta en un sentido y luego
ejecuta otra vuelta en sentido opuesto. Este código hace uso de la librería ‘Stepper.h‘,
que se instala por defecto en las últimas versiones del IDE de Arduino.
El valor de la variable stepsPerRevolution depende del número de pasos del motor
paso a paso. Este valor se encuentra en las especificaciones de la hoja de datos del
motor. En nuestro caso el motor paso a paso utilizado es de 48 pasos/vuelta.
/*
Stepper Motor Control - one revolution
Este programa impulsa un motor paso a paso unipolar o bipolar.
El motor está conectado a los pines digitales 8 - 11 de la Arduino.
El motor debe girar una vuelta en una dirección, a continuación,
una revolución en la otra dirección.
Created 11 Mar. 2007
by Tom Igoe

Modificado
16/05/14
por Andres Cruz
ELECTRONILAB.CO
*/

#include <Stepper.h>
const int stepsPerRevolution = 48;
// inicializa la libreria 'stepper' en los pines 8 a 11
Stepper myStepper(stepsPerRevolution, 8,9,10,11);
void setup() {
// establece la velocidad en 60rpm
myStepper.setSpeed(60);
// inicializa el puerto serial
Serial.begin(9600);
}

void loop() {
// gira una vuelta en una direccion
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);

// gira otra vuelta en la otra direccion


Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}

100
LECTURA SELECCIONADA N°1
Programación de un ESC con Arduino

Programación de un ESC con Arduino. (2016). Disponible en http://robo-


logs.net/2016/02/01/programacion-de-un-esc-con-arduino/

ACTIVIDAD N.° 1
Foro de discusión sobre los elementos que componen un Dron.
Instrucciones
Ingrese al foro y participe con comentarios acerca de los elementos que componen
un Dron
 Participa en el foro respondiendo a las preguntas:
¿Cuáles son los componentes básicos que debe poseer un Dron?
¿Cuál es la misión que juega cada uno de esos componentes?

TEMA N.° 2: COMUNICACIÓN INALÁMBRICA

1. Comunicación por bluetooth


¿Qué es BlueTooth?
Es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN),
posee el estándar 802.15, orientada facilita la transmisión de voz y datos entre
diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de
los 2.4 GHz. Tiene por Objetivos:
• Facilitar las comunicaciones entre equipos móviles.
• Eliminar los cables y conectores entre éstos.
• Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sin-
cronización de datos entre equipos personales.
• Tipos de Shields BlueTooth para Arduino.
• Existen dos modelos de módulos Bluetooth: el HC-05 que puede ser maes-
tro/esclavo (master/slave), y el HC-06 que solo puede actuar como esclavo
(slave).
• La diferencia entre maestro y esclavo es que en modo esclavo es el dispositivo
quien se conecta al módulo, mientras que en modo maestro es el módulo
quien se conecta con un dispositivo.
Tipos de Shields BlueTooth para Arduino.
• Existen dos modelos de módulos Bluetooth: el HC-05 que puede ser maes-
tro/esclavo (master/slave), y el HC-06 que solo puede actuar como esclavo
(slave).
• La diferencia entre maestro y esclavo es que en modo esclavo es el dispositivo
quien se conecta al módulo, mientras que en modo maestro es el módulo
quien se conecta con un dispositivo.

101
Figura Nro 88. Módulos de bluetooth

Vcc Alimentación del módulo entre 3,6V y 6V.


GND La masa del módulo.
TXD Transmisión de datos.
RXD Recepción de datos a un voltaje de 3,3V.
KEY Poner a nivel alto para entrar en modo configuración del módulo (solo
el modelo HC-05)
STATE Para conectar un led de salida para visualizar cuando se comuniquen
datos.

Configurando el Shield BlueTooth.


Es importante efectuar este proceso por motivos de seguridad, además en un entorno
donde se encuentren varios dispositivos seria dificultoso identificar a cada.
En la figura se muestra la forma del circuito que se debe preparar para poner al
BlueTooth en modo de configuración.

Figura Nro 89. Conexionado para Configuración de BlueTooth.

Es posible que se encuentre un botón en el módulo de BlueTooth el cual se debe


mantener presionado mientras se enciende el módulo de Arduino conectado al Blue-
Tooth.

102
Luego es importante subir el siguiente programa al Arduino:

Configurando el BlueTooth

Segundo Al enviar el comando AT (en mayúscu-


las) se debe tener una respuesta, probablemente
a la primera vez muestre Error y si todo va bien el
mensaje OK. Primero dirigirse al monitor serie y verificar:
Agregar Ambos Velocidad 38400
NL & CR

Figura Nro 90. Configurando desde el monitor serie

COMANDOS AT –
Para configuración del módulo BlueTooth se requiere enviar comandos desde el mo-
nitor que recientemente acabamos de configurar.
Por defecto se llama “HC-05”. cambiar con el comando AT
Enviar: AT+NAME=<Nombre>
Cambiar nombre
Ejm: AT+NAME=Chanchez
Respuesta: OK
Por defecto viene con el código 1234,
Enviar: AT+PSWD=<Pin>
Cambiar Código Ejm: AT+PSWD=2560
de Vinculación Respuesta: OK
Se puede saber cuál es el pin actual con el comando:
AT+ PSWD?

Verificar los parámetros establecidos


En modo de transmisión el Pin de Key del BlueTooth debe estar desconectado, ade-
más los pines deben estar conectados de la siguiente manera:
 Tx BlueTooth con Rx de Arduino
 Rx de BlueTooth con Tx de Arduino
Mediante una PC portátil verificar que el modulo BlueTooth se encuentre transmi-
tiendo y que es posible conectarse con el dispositivo BlueTooth de Arduino.

Prueba desde una PC de la conexión con el BlueTooth 1/7


Luego de carga el siguiente de la figura Nº 87 al Arduino.

103
Figura Nro 91. Programa de prueba del módulo de BlueTooth

Luego activa el monitor serial en el Ide de Arduino.


Recuerda que se debió emparejar el BlueTooth con el pc portátil, para ello sigue la
siguiente secuencia:
En la barra de tareas de Windows
busca el ícono de BlueTooth y elige
la opción Agregar un dispositivo
BlueTooth.

1ro busca dispositivos


BlueTooth

Luego PC y Dispositivos, inmediatamente BlueTooth, se debn visualizar los dispositi-


vos BlueTooth disponibles, elige el del proyecto y agrega la contraseña en el mo-
mento solicitado

Figura Nro 92. Agregando un dispositivo BlueTooth a una PC.

Elige la opción Emparejar y finalmente ingresa el Pin o password que estableciste


anteriormente al momento de configuración del módulo de BlueTooth.

104
Figura Nro 93. Ingreso del Pin BlueTooth para emparejar

Se verá un mensaje indicando que le PC está conectado correctamente.

Figura Nro 94. Mensaje de dispositivo BlueTooth emparejado

Luego en dispositivos del PC averigua el número de puerto Serial asignado al Blue-


Tooth, por ejemplo, COM5.
Para llegar a dispositivos efectúa: "Inicio > clic derecho sobre Equipo > selec-
ciona Propiedades > Administrador de dispositivos"

Figura Nro 95. Dispositivos disponibles en Windows.

Empleando algún programa de conexión Serial como el Putty establece conexión con
el puerto serial asignado al BlueTooth

105
Figura Nro 96. Interfaz del PuTTY para conexiones seriales

Desde la ventana de putty envía algún dato, por ejemplo 0 este se debe visualizar
en el monitor serial del Arduino, indicativo que la conexión es correcta.

Figura Nro 97. Envío y recepción por el puerto serial

2. EVALUANDO LA PERFORMANCE DEL SISTEMA


Para evaluar el performance o rendimiento de un sistema de cómputo se aconseja
guiarse de algún Benchmark, que es un conjunto de procedimientos para evaluar el
rendimiento de un computador, estos procedimientos por lo general están implemen-
tados en software.
Existen cuatro categorías de benchmark
Pruebas aplicaciones-base El propio software ejecuta y las cronometra.
(application-based)
las cuales usan llamadas al sistema durante activi-
Pruebas playback (play-
dades específicas de una aplicación(Ej.: Llamados a
back test)
gráficos o uso del disco) y las ejecuta aisladamente.
Prueba sintética (synthe- la cual enlaza actividades de la aplicación en subsis-
tic test) temas específicos.
la cual no intenta imitar la actividad de la aplicación,
Prueba de inspección (ins-
sino que las ejecuta directamente en los subsistemas
pection tests)
específicos.

Programas sencillos de emplear para Benchmark


Este es un listado de programas básicos para ejecutar pruebas de rendimiento
 Winrar (Shareware) Benchmark. Anda a herramientas y elige Benchmark
106
 PCMark 8 (de pago)
 SiSoftware Sandra
 Novabench, compara tus resultados aquí
 Aida64
EVALUAR LOS COMPONENTES
Mucho del software existente permiten aplicar el test a cada elemento del sistema a
evaluar.
CPU
Como sabemos el CPU posee características que influencian directamente sobre su
rendimiento, muchos de los cuales se han visto en esta asignatura.
 La generación del procesador (el modelo)  La tecnología de fabricación
 La frecuencia
 El número de núcleos e Hiperthreading
 La memoria caché del CPU
Puedes comparar en sitios web, los diferentes modelos de CPU antes de comprar.
También puedes someter a un test su overclocking comparando los diferentes repor-
tes.
También existen Sitios de benchmark en Línea:
CPU Benchmarks http://www.cpubenchmark.net/
SilverBench http://silver.urih.com/

RAM
Así mismo en la memoria del sistema se tienen característica que influencian en los
rendimientos:
 La cantidad de memoria instalada
 La frecuencia de trabajo de la memoria
 La latencia CAS (Column Address Select)

Sitio de benchmark en línea


Memory Benchmarks http://www.memorybenchmark.net/

Programas de benchmarkR
Super Pi.
Descargar desde http://www.superpi.net/Download/

Figura Nro 98.

107
Tarjeta de video
Influencia en la performance para ejecutar video de alta resolución, video juegos en
2d y 3d, así como software de diseño CAD, y software criptográfico
 El Bus (ejemplo 256 bits)
 La memoria (cantidad y sobre todo velocidad)
 La Frecuencia de reloj
 Número de núcleos que incorpora la tarjea

Discos duros
Influencia mucho en el tiempo de inicio, la posibilidad de emplear efectivamente la
memoria virtual
 El tiempo de acceso. Cuanto menor es el tiempo de acceso entonces es menor
el tiempo de respuesta.
o HDD magnético: 10 milisegundo
o SDD Estado sólido: 0,2 hasta 0.1 milisegundos

LECTURA SELECCIONADA N.° 2

10 predicciones sobre el futuro de Internet de las cosas

Banafa, A. (2016). 10 predicciones sobre el futuro de Internet de las cosas. Disponible


en https://goo.gl/j1UCBR

ACTIVIDAD N.° 2
Foro de discusión acerca de las tendencias principales del IOT.
Instrucciones
Ingrese al foro y participe con comentarios críticos y analíticos del tema referente a
las tendencias principales del IOT
Con referencia al artículo de la Lectura Seleccionada Nro 2
¿Cuál de las tendencias estimas pueda llegar a ser la más influyente? ¿Por
qué?
¿Cuál de estas tendencias te agradaría innovar o emprender?

108
GLOSARIO DE LA UNIDAD IV

Autómata
Aparato que contiene los mecanismos necesarios para ejecutar ciertos movimientos
o tareas similares a las que realiza una persona
Hexápodo: (plataforma) Una plataforma movible, utilizando seis actuadores linea-
les. De uso frecuente en simuladores de vuelo y paseos en el parque de atracciones,
también tienen aplicaciones como un Manipulador robótico.
Capek, Karel
Dramaturgo checo, quien mencionó por primera vez en la palabra "Robot" en 1917
en un cuento denominado Opilec. Posteriormente se popularizó el concepto en otra
de sus obras: Rossum's Universal Robots, de 1921. Robot deriva de "robotnik", con
la cual definía al "esclavo de trabajo", y con ella se designaba a un artefacto mecánico
con aspecto humano, capaz de desarrollar tareas que sólo los hombres eran capaces
de efectuar.
Corriente alterna
Tipo de corriente eléctrica, en la que la dirección del flujo de electrones va y viene a
intervalos regulares o ciclos.
Corriente continua
Tipo de corriente eléctrica que fluye de forma constante en una dirección. La corriente
que fluye en una linterna o en cualquier otro aparato con baterías es corriente conti-
nua.
Entrada de sensor:
Terminal de la interfaz en la que se pueden conectar diferentes tipos de sensores.
Fotocélula Dispositivo electrónico que detecta la luz. Se utiliza frecuentemente en
sensores ópticos para los robots.
Fuente de poder
Unidad que suministra energía eléctrica a otro componente de una máquina.
Generador de corriente alterna
Dispositivo que convierte la energía mecánica en energía eléctrica.
Giro
Movimiento básico de un manipulador
Grado de libertad
Concepto que describe las direcciones en que puede moverse el brazo de un robot.
En general, a más articulaciones, más grados de libertad.
Informática
Conjunto de técnicas y conocimientos científicos que permiten el tratamiento auto-
mático de la información mediante la utilización de computadores.
Inteligencia Artificial
Término que, en su sentido más amplio, indicaría la capacidad de un artefacto de
realizar los mismos tipos de funciones que caracterizan al pensamiento humano.
Interfaz
Conexión física y funcional entre dos aparatos o sistemas que utilizan diferentes len-
guajes de comunicación

109
BIBLIOGRAFÍA DE LA UNIDAD IV
Aragonesa, P. E. (2016). DEMO E-DUCATIVA CATEDU. http://e-ducativa.ca-
tedu.es/44700165/aula/archivos/repositorio/4750/4923/html/index.html
Cruz, A. (2015). https://electronilab.co. https://electronilab.co/tutoriales/tutorial-
de-uso-driver-dual-l298n-para-motores-dc-y-paso-a-paso-con-arduino/
EDITORIAL, P. (2016). http://www.planetasaber.com. http://www.planetasa-
ber.com/theworld/gats/seccions/cards/default.asp?pk=782&art=59
Electronica_90. (2014). Placa Arduino - Uma das grandes evoluções da Eletrônica.
http://eletronica90.blogspot.pe/2014/09/placa-arduino-uma-das-grandes-evolu-
coes.html
Esquer, M. J. (2012). Microcontroladores ATMega328P. Baja California, Mèxico.
Intel. (2013). Desktop Boards, S/PDIF information. . http://www.intel.com/sup-
port/sp/motherboards/desktop/sb/cs-032871.htm
Intel. (2016). www.intel.com. http://ark.intel.com/products/82932/Intel-Core-i7-
5820K-Processor-15M-Cache-up-to-3_60-GHz?q=i7-5820K
Navas, M. Á. (2016). Professional Review. https://www.profesionalre-
view.com/2017/01/03/intel-i7-7700k-review/
Pc, D. d. (2012). Diferencia entre el FSB y DMI. http://www.doctoresdelpc.com/no-
ticias/diferencia-entre-el-fsb-y-dmi/
Pérez, G. (2015). openwebinar. https://openwebinars.net/blog/tutorial-arduino-en-
tradas-analogicas-y-digitales/
Salinas, G. (2010). La cremme de la cremme para móviles.
http://www.chw.net/2010/09/samsung-orion-procesador-arm-doble-nucleo-de-
1ghz/
Stallings, W. (2006). Organización y arquitectura de computadores. Madrid: Pearson
Education .
Stengel, S. (2016). Welcome to the Old Computer Museum! http://oldcomput-
ers.net/indexwp.html
Tchkheidze, M. (2013). Blue Cerca de los circuitos electrónicos.
http://es.123rf.com/photo_5243627_blue-cerca-de-los-circuitos-electronicos-
up.html

110
AUTOEVALUACIÓN 4

Lee atentamente y selecciona la respuesta correcta. (02 puntos cada respuesta co-
rrecta)
1. ¿Qué hace una función loop()?
a) Cambia la escala de medición de una a otra
b) Repite las instrucciones que contiene
c) Repite las instrucciones que contiene mientras se cumpla una condición inicial
d) Asigna los pines como entradas o salidas
e) ninguna de las anteriores
2. ¿Qué instrucción usaríamos para leer un pin digital?
a) digitalWrite
b) analogWrite
c) digitalread
d) analogread
e) Un pin digital no se lectura
3. Si en una línea de código tenemos:" digitalWrite(led, HIGH) " ¿Qué es lo
que esta línea le esta ordenando al programa?
a) Lee el valor analógico de lo que haya en el pin asignado como led
b) Escribe siempre en el pin 13 el valor HIGH
c) Asigna un nivel alto a la salida asignada a la variable led
d) Asigna a la variable HIGH el valor de la variable LED
e) La instrucción está mal empleada
4. Tenemos la instrucción: "Serial.begin(9600);" ¿Qué es lo que esta línea
indica?
a) Hace que el programa se quede parado durante 9, 6 segundos
b) Activa el monitor serie
c) Te saca por pantalla el numero 9600
d) Define una variable
e) Enviar datos al Puerto cada 9600 segundos
5. En un Sketch de Arduino ¿Cuántas veces se repite el “void setup()”?
a) 1
b) 0
c) Las que se indique
d) 3
e) depende del programa
6. ¿Cuántas veces se repite el “void loop”?
a) 1
b) Siempre se repite
c) 3
d) No se repite
e) Sólo cuando el Arduino está a la espera de instrucciones de entrada/salida
7. ¿En qué parte de un programa de Arduino se indica que pines operan
como salidas y entradas?
a) void setup
b) antes del void setup
c) void loop
d) respuesta “a” y “b”
e) Sólo c
8. ¿Cuál es el rango de valores que tienen las salidas de voltaje PWM en
Arduino?
a)0 a 1023
b)0 a 255
c)0 a 9600
d)0 a 512
e) 0 a 32,256
9. ¿Qué representan los leds TX y RX del Arduino?
111
a) Encendido
b) Cuando se está dando un bucle
c) Cuando corres el programa
d) Monitor serial
e) Reset
10.¿Cuál es el único pin que tiene su propio LED en la placa Arduino?
a) A0
b) 9
c) 13
d) 11
e) 1

112
ANEXOS

Respuestas de la Autoevaluación de la Unidad I


Número Respuesta
1 B
2 B
3 C
4 A
5 B
6 V
7 V
8 V
9 F
10 F
Respuestas de la Autoevaluación de la Unidad II
Número Respuesta
1 a
2 d
3 b
4 c
5 b
6 b
7 c
8 a
9 c
10 b
Respuestas de la Autoevaluación de la Unidad III
Número Respuesta
1 E
2 D
3 B
4 B
5 C
6 C
7 B
8 C
9 A
10 B
Respuestas de la Autoevaluación de la Unidad IV
Número Respuesta
1 b
2 c
3 c
4 b
5 a
6 b
7 a
8 a
9 d
10 c

113

Você também pode gostar