Está en la página 1de 163

ARQUITECTURA DEL COMPUTADOR - INF288

Fundamentación:
Hoy en día nadie duda que las computadoras forman parte activa de nuestras vidas. Ya casi nada ocurre sin
que medie una computadora. Es por esta razón que resulta importante conocer cómo se componen, como están
organizados y la diferencias que existen entre los sistemas, las aplicaciones, el hardware y el ordenamiento
lógico entre cada uno de estos componentes.
Para un buen desenvolvimiento en el área de las aplicaciones es vital conocer desde adentro una computadora
de escritorio y describir de manera simple y objetiva los elementos que la componen. Entender la diferencia
entre lo que es el sistema operativo y las aplicaciones, entre el hardware y la conectividad y entre los diferentes
tipos de almacenamiento hará que cada uno de nosotros pueda optimizar el uso de este recurso y desde ya
sacarle el máximo de provecho.

Objetivos:
Generales
Analizar la estructura y el funcionamiento de los computadores.
Reconocer los principales componentes de diseño de un microprocesador.
Comprender la interrelación entre los fundamentos de la organización y la arquitectura de computadores.
Analizar los principios de funcionamiento de las arquitecturas relacionados con computadores avanzados.

Específicos
Reconocer los sistemas numéricos, métodos de conversión y operaciones básicas.
Reconocer la arquitectura básica del ordenador, Modelo de Von Neumann.
Identificar los componentes de la Mother Board, relaciones y comunicación entre ellos.
Reconocer los componentes, funcionamiento y técnicas de microprocesadores.
Reconocer los distintos medios de almacenamiento para elegir el más conveniente a la hora de utilizarlos.
Identificar los dispositivos externos y los procesos, de audio, video e impresión.

Competencias:
Genéricas:

- Conocimientos curriculares y técnicos de la profesión

- Gestión de la información y el conocimiento

- Manejo de Tecnología

Específicas:

- Dominio para diseñar soluciones apropiadas a diversos dominios de


aplicación, utilizando los principios y métodos propios de la ingeniería de
software

Contenidos:
1 - INTRODUCCIÓN AL FUNCIONAMIENTO DE UN MICROORDENADOR -
MODULO 1

1
1.1 - Sistemas de numeración. - MODULO 1

1.2 - Sistemas posicionales y no posicionales. - MODULO 1

1.3 - Expresión de un número en potencia de su base. - MODULO 1

1.4 - Sistema decimal, binario, octal y hexadecimal. - MODULO 1

1.5 - Métodos de conversión de números enteros y fraccionarios. - MODULO 1

1.6 - Complemento de un número. - MODULO 1

1.7 - Operaciones fundamentales: suma y resta. - MODULO 1

1.8 - Binario, octal y hexadecimal - MODULO 1

1.9 - Códigos. Tipos. Representación de datos a nivel de máquina. Errores. -


MODULO 1

1.10 - Circuitos digitales combi nacionales y secuenciales. Introducción a los circuitos


lógicos. - MODULO 1

1.11 - Forma canónica de una función. Minimización de circuitos. - MODULO 1

1.12 - Método de mapas de Karnaugh de 2,3 y 4 variables. - MODULO 1

1.13 - Circuitos digitales combi nacionales. Tipos. - MODULO 1

1.14 - Circuitos digitales secuenciales. Latches, flip-flop y registros. - MODULO 1

1.15 - Contadores. Síncronos y asíncronos. - MODULO 1

1.16 - Concepto de Arquitectura y organización de un computador, estructura y


funcionamiento de un computador. - MODULO 1

1.17 - Función del microprocesador. - MODULO 1

1.18 - Función de la memoria. ¿Cómo interactúan el microprocesador y la memoria? -


MODULO 1

1.19 - Arquitectura clásica de un computador: - MODULO 1

1.20 - Modelo de Von Neumann. - MODULO 1

2
1.21 - Criterios de clasificación de los sistemas de memoria: ubicación, capacidad,
unidad de transferencia, método de acceso, dispositivo físico, características físicas
(volátil / no volátil, borrable / no borrable). - MODULO 1
1.22 - Capacidad y organización de almacenamiento. - MODULO 1

1.23 - Tiempo de acceso y tiempo de transferencia. - MODULO 1

1.24 - Jerarquía de memoria. - MODULO 1

1.25 - La memoria del sistema o memoria principal semiconductora. - MODULO 1

1.26 - Tipos de memorias semiconductoras de acceso aleatorio: familia Ram y familia


Rom. - MODULO 1

1.27 - Principio de funcionamiento de organizaciones avanzadas de memorias Ram. -


MODULO 1

2 - MOTHER BOARD O PLACA MADRE - MODULO 2

2.1 - La función de la placa madre. - MODULO 2

2.2 - Los componentes básicos de una placa madre. - MODULO 2

2.3 - El chipset y su importancia. - MODULO 2

2.4 - El reloj del sistema, unidades de medición. - MODULO 2

2.5 - Administración de dispositivos on board y off board. - MODULO 2

2.6 - Los puertos de conexión: el enlace exterior. - MODULO 2

2.7 - Tipos de interfaces y sus características. - MODULO 2

2.8 - Interface serie: RS-232 C, Bus Serie Universal (USB). - MODULO 2

2.9 - Interfaces paralela: Centronics, estándar IEEE 1284, Small Computer Systems
Interface (SCSI). - MODULO 2

2.10 - Los slots de expansión. - MODULO 2

2.11 - Buses: concepto, características de un bus, jerarquía de buses, protocolo de bus,


arbitraje de bus: centralizado, distribuido, interrupciones. - MODULO 2

2.12 - Control de errores: errores más comunes. Ejemplo de buses comerciales (bus
PCI, bus serie FireWire). - MODULO 2

3
2.13 - Interconexión entre procesador y periféricos. - MODULO 2

2.14 - Clasificación de los dispositivos de E/S. - MODULO 2

2.15 - Módulos de Entrada/Salida. - MODULO 2

2.16 - Técnicas de Entrada/Salida: E/S programada, E/S mediante interrupciones, -


MODULO 2

2.17 - Acceso directo a memoria (DMA). Apoyo al sistema operativo. - MODULO 2

3 - LOS MICROPROCESADORES - MODULO 3

3.1 - Componentes funcionales de los microprocesadores (CPU): ALU, FPU, UC,


registros internos, caché, buses internos. - MODULO 3

3.2 - Organización de los registros Internos. - MODULO 3

3.3 - Ciclo de instrucción y estrategias de segmentación. - MODULO 3

3.4 - Unidad Aritmética y Lógica (ALU): sistema de numeración, representación de


enteros, aritmética con enteros. - MODULO 3

3.5 - Unidad de Punto Flotante (FPU): representación en coma flotante, aritmética en


coma flotante. - MODULO 3

3.6 - Unidad de Control (UC) y su importancia en la ejecución de las instrucciones:


repertorio de instrucciones, modos de direccionamientos y formato de instrucciones,
subrutinas y excepciones, diseño de la unidad de control (cableada, microprogramada).
- MODULO 3
3.7 - Memoria caché: Principios básicos y elementos de diseño de la caché (tamaño,
correspondencia, algoritmos de sustitución, política de escritura, tamaño de línea, nivel
de caché, unificada o partida). - MODULO 3
3.8 - Las interrupciones. - MODULO 3

3.9 - Código nemónico. Lenguajes de máquina de nivel convencional. Lenguaje


ensamblador - MODULO 3

3.10 - Parámetros de funcionamiento de los diversos microprocesadores del mercado. -


MODULO 3

3.11 - Computadores de repertorio reducido de instrucciones (RISC). - MODULO 3

3.12 - Características generales de las arquitecturas RISC. - MODULO 3

3.13 - Características CISC frente a RISC. - MODULO 3

3.14 - Modelo de no Von Neumann Paralelismo a nivel de instrucciones. - MODULO 3

4
3.15 - Procesadores superescalares y segmentados - MODULO 3

3.16 - Arquitecturas avanzadas. Clasificación de las arquitecturas avanzadas. -


MODULO 3

3.17 - Conceptos de arquitecturas Grid. - MODULO 3

3.18 - Conceptos de arquitecturas reconfigurabes. - MODULO 3

3.19 - Conceptos de arquitecturas basadas en servicios. - MODULO 3

3.20 - Procesadores de la prestación. - MODULO 3

3.21 - Máquinas algorítmicas: Introducción. - MODULO 3

3.22 - Estructura general de las máquinas de estado. - MODULO 3

3.23 - Lenguaje de descripción de hardware. Componentes. Procedimiento de diseño. -


MODULO 3

3.24 - Ejemplos de máquinas de estado algorítmico. - MODULO 3

3.25 - Diseño de la unidad de procesamiento. - MODULO 3

3.26 - Diseño de la unidad de control. - MODULO 3

4 - MEDIOS DE ALMACENAMIENTO MASIVO - MODULO 4

4.1 - Grabación magnética. Códigos de grabación magnética. - MODULO 4

4.2 - Medios magnéticos: discos rígidos, discos flexibles, organización de los discos
magnéticos. - MODULO 4

4.3 - Cintas magnéticas. - MODULO 4

4.4 - Discos ópticos: características y principio de funcionamiento, CD-ROM, CD RW,


DVD. - MODULO 4

4.5 - Discos magneto-óptico: características y principio de funcionamiento. - MODULO 4

4.6 - Medios transportables (LS 120, Zip, Jazz, Sea Quest, etc.) : características
generales. - MODULO 4

5 - PROCESAMIENTO DE AUDIO - MODULO 4

5
5.1 - Teorema del muestreo. - MODULO 4

5.2 - Características fundamentales de la conversión analógica a digital y viceversa. -


MODULO 4

5.3 - Proceso de obtención PCM (Modulación por Codificación de Pulso). - MODULO 4

5.4 - Elementos funcionales de una placa de audio. - MODULO 4

6 - PROCESAMIENTO DE VIDEO - MODULO 4

6.1 - Características del procesamiento de video. - MODULO 4

6.2 - Elementos importantes y características funcionales de las placas de video. -


MODULO 4

6.3 - Tipos de pantallas y sus funcionamientos. - MODULO 4

6.4 - Buses y puertos gráficos: características principales. - MODULO 4

7 - DISPOSITIVOS DE IMPRESIÓN - MODULO 4

7.1 - Tecnología de impresión: clasificación. - MODULO 4

7.2 - Descripción del funcionamiento básico de las distintas tecnologías de impresión


(matriz de punto, inyección de tinta, chorro de tinta, láser, térmicas, etc.). - MODULO 4

7.3 - Los plotters: características y principio de funcionamiento. - MODULO 4

Bibliografía:
Básica:

- Quiroga, I. P. ; 2010; Arquitectura de Computadoras.; Buenos Aires; Alfaomega Grupo Editor Argentino.

- Stallings, William; 2005; Organización y arquitectura de computadores; 7°; Madrid, España; Pearson

Ampliatoria:

- Shen, J. P. y Lipasti, M. H. ; 2006; Arquitectura de Computadores, fundamentos de procesadores


superescalares. ; Madrid; McGraw Hill

- Tanenbaum, A. S. ; 2006; Structured Computer Organization ; 5a ; Amsterdam; Prentice Hall.

Recursos:
Contenidos y materiales multimediales en plataforma.
Bibliografía obligatoria.
Buscadores vinculados a la profesión.

6
Carga Horaria:
La carga horaria semestral dedicada al dictado de la asignatura es 64 horas reloj.

Descripción Analítica de las Actividades Teóricas y Prácticas:

Metodología:
Las clases se organizarán tomando como base el material incluido en la bibliografía seleccionada. Las clases se
desarrollarán a partir de las explicaciones relativas a los temas del programa por parte del profesor y de las
intervenciones por parte de los alumnos. Así mismo los alumnos desarrollaran actividades como protagonistas
del aprendizaje activo.
La metodología que prevé esta materia es a través del recorrido de los materiales multimediales puestos a
disposición, plataforma que permite el intercambio continuo con el docente.

Forma de Evaluación:
En esta materia se evalúa el proceso de aprendizaje del alumno a través de las tareas realizadas por ellos en
las fechas estipuladas institucionalmente.
La aprobación, se determina en función al cumplimento de los criterios de evaluación especificados. Estos
criterios se basan en tres áreas claves/críticas: cumplimiento de tiempos de entrega (según cronograma),
cumplimento de las especificaciones de forma del entregable y nivel de logro de las competencias vinculadas a
esta materia.
La condición de regularidad de esta materia se define según lo establecido en el Reglamento Institucional, de
acuerdo con la condición del alumno (Regular, Libre, Promocionado).

7
Guía conceptual
Temario Bibliografía Básica Aula Abierta
MÓDULO 1
UNIDAD 1:
INTRODUCCIÓN AL
FUNCIONAMIENTO DE UN
MICROORDENADOR
1.1 Sistemas de Quiroga, I. P. (2010). AULA ABIERTA 1
numeración Arquitectura de
1.2 Sistemas posicionales y Computadoras. Buenos Para profundizar en los
no posicionales Aires: Alfaomega Grupo Conceptos Centrales, se
1.3 Expresión de un Editor Argentino. recomienda la siguiente
número en potencia de su [Capítulo 2] lectura:
base “Numeración,
1.4 Sistema decimal, Codificación”
binario, octal y
hexadecimal
1.5 Métodos de conversión
de números enteros y
fraccionarios
1.6 Complemento de un
número
1.7 Operaciones
fundamentales: suma y
resta
1.8 Binario, octal y
hexadecimal

1.9 Códigos. Tipos. Quiroga, I. P. (2010). Para profundizar en los


Representación de datos a Arquitectura de Conceptos Centrales, se
nivel de máquina. Errores Computadoras. Buenos recomienda la siguiente
Aires: Alfaomega Grupo lectura:
Editor Argentino. “Circuitos digitales”
[Capítulo 3]

1.10 Circuitos digitales


combi nacionales y Quiroga, I. P. (2010).
Arquitectura de
secuenciales. Introducción Computadoras. Buenos
a los circuitos lógicos Aires: Alfaomega Grupo
1.11 Forma canónica de Editor Argentino.
una función. Minimización [Capítulo 5]
de circuitos
1.12 Método de mapas de
Karnaugh de 2,3 y 4
variables
1.13 Circuitos digitales Quiroga, I. P. (2010). Para profundizar en los
combi nacionales. Tipos Arquitectura de Conceptos Centrales, se
1.14 Circuitos digitales Computadoras. Buenos recomienda la siguiente
secuenciales. Latches, flip- Aires: Alfaomega Grupo lectura:
flop y registros Editor Argentino. “Circuitos digitales”
1.15 Contadores. [Capítulo 6]
Síncronos y asíncronos

1.16 Concepto de Quiroga, I. P. (2010). Para profundizar en los


Arquitectura y Arquitectura de Conceptos Centrales, se
organización de un Computadoras. Buenos recomienda la siguiente
computador, estructura y Aires: Alfaomega Grupo lectura:
funcionamiento de un Editor Argentino. “Conceptos Básicos”
computador [Capítulo 7]

1.17 Función del Quiroga, I. P. (2010).


microprocesador Arquitectura de
Computadoras. Buenos
Aires: Alfaomega Grupo
Editor Argentino.
[Capítulo 8]

1.18 Función de la Quiroga, I. P. (2010).


memoria. ¿Cómo Arquitectura de
interactúan el Computadoras. Buenos
microprocesador y la Aires: Alfaomega Grupo
memoria? Editor Argentino.
[Capítulo 9]
1.19 Arquitectura clásica
de un computador Quiroga, I. P. (2010).
Arquitectura de
1.20 Modelo de Von Computadoras. Buenos
Neumann Aires: Alfaomega Grupo
Editor Argentino.
[Capítulo 7]

1.21 Criterios de Quiroga, I. P. (2010). Para profundizar en los


clasificación de los Arquitectura de Conceptos Centrales, se
sistemas de memoria: Computadoras. Buenos recomienda la siguiente
ubicación, capacidad, Aires: Alfaomega Grupo lectura:
unidad de transferencia, Editor Argentino. “Memorias”
método de acceso, [Capítulo 9]
dispositivo físico,
características físicas
(volátil/no volátil,
borrable/no borrable)
1.22 Capacidad y
organización de
almacenamiento
1.23 Tiempo de acceso y
tiempo de transferencia
1.24 Jerarquía de memoria
1.25 La memoria del
sistema o memoria
principal semiconductora
1.26 Tipos de memorias
semiconductoras de
acceso aleatorio: familia
Ram y familia Rom
1.27 Principio de
funcionamiento de
organizaciones avanzadas
de memorias Ram
MÓDULO 2
2. UNIDAD 2: MOTHER
BOARD O PLACA MADRE
2.1 La función de la placa Quiroga, I. P. (2010). AULA ABIERTA 2
madre Arquitectura de
2.2 Los componentes Computadoras. Buenos Para profundizar en los
básicos de una placa Aires: Alfaomega Grupo Conceptos Centrales, se
madre Editor Argentino.
2.3 El chipset y su [Capítulo 1.10] recomienda la siguiente
importancia lectura:
“Placa madre”

2.4 El reloj del sistema, Quiroga, I. P. (2010).


unidades de medición Arquitectura de
Computadoras. Buenos
Aires: Alfaomega Grupo
Editor Argentino.
[Capítulo 7]

2.5 Administración de Quiroga, I. P. (2010).


dispositivos on board y off Arquitectura de
board Computadoras. Buenos
Aires: Alfaomega Grupo
Editor Argentino.
[Capítulo 1.10]

2.6 Los puertos de Quiroga, I. P. (2010).


conexión: el enlace Arquitectura de Para profundizar en los
exterior Computadoras. Buenos Conceptos Centrales, se
Aires: Alfaomega Grupo recomienda la siguiente
Editor Argentino. lectura:
[Capítulo 13.3] “Interfaces”

2.7 Tipos de interfaces y Stallings, W. & Stallings,


sus características W. (2005). Organización y
2.8 Interface serie: RS-232 arquitectura de
C, Bus Serie Universal computadores.
(USB) (7ma edición). Madrid:
2.9 Interfaces paralelas: Pearson.
Centronics, estándar IEEE [Capítulo 7]
1284, Small Computer
Systems Interface (SCSI)
2.10 Los slots de expansión
2.11 Buses: concepto,
características de un bus, Quiroga, I. P. (2010).
jerarquía de buses, Arquitectura de Para profundizar en los
protocolo de bus, arbitraje Conceptos Centrales, se
de bus: centralizado, Computadoras. Buenos recomienda la siguiente
distribuido, interrupciones Aires: Alfaomega Grupo lectura:
Editor Argentino. “Buses”
2.12 Control de errores: [Capítulo 13.2]
errores más comunes.
Ejemplo de buses Stallings, W. & Stallings,
comerciales (bus PCI, bus W. (2005). Organización y
serie FireWire) arquitectura de
computadores.
(7ma edición). Madrid:
Pearson.
[Capítulo 7]
2.13 Interconexión entre
procesador y periféricos
Quiroga, I. P. (2010). Para profundizar en los
Arquitectura de Conceptos Centrales, se
Computadoras. Buenos recomienda la siguiente
Aires: Alfaomega Grupo lectura:
Editor Argentino. “Entrada/Salida”
[Capítulo 7]
2.14 Clasificación de los
dispositivos de E/S
2.15 Módulos de Stallings, W. & Stallings,
Entrada/Salida W. (2005). Organización y
2.16 Técnicas de arquitectura de
Entrada/Salida: E/S computadores.
programada, E/S mediante (7ma edición). Madrid:
interrupciones Pearson.
2.17 Acceso directo a [Capítulo 7]
memoria (DMA). Apoyo al
sistema operativo
MÓDULO 3
UNIDAD 3: LOS
MICROPROCESADORES
3.1 Componentes Stallings, W. & Stallings, AULA ABIERTA 3
funcionales de los W. (2005). Organización y
microprocesadores (CPU): arquitectura de Para profundizar en los
ALU, FPU, UC, registros computadores. Conceptos Centrales, se
internos, caché, buses (7ma edición). Madrid: recomienda la siguiente
internos Pearson. lectura:
[Capítulos 3.1 y 12] “CPU”
3.2 Organización de los
registros Internos
Stallings, W. & Stallings,
W. (2005). Organización y
3.3 Ciclo de instrucción y arquitectura de
estrategias de computadores.
segmentación (7ma edición). Madrid:
Pearson.
[Capítulo 3.2 y 12]

Stallings, W. & Stallings,


W. (2005). Organización y
3.4 Unidad Aritmética y arquitectura de
Lógica (ALU): sistema de computadores.
numeración, (7ma edición). Madrid:
representación de enteros, Pearson.
aritmética con enteros [Capítulos 1.1, 1.2 y 12]
3.5 Unidad de Punto
Flotante (FPU):
representación en coma
flotante, aritmética en Para profundizar en los
coma flotante Conceptos Centrales, se
3.6 Unidad de Control (UC) recomienda la siguiente
y su importancia en la lectura:
ejecución de las “Unidad de control”
instrucciones: repertorio
de instrucciones, modos
de direccionamientos y
formato de instrucciones,
subrutinas y excepciones,
diseño de la unidad de
control (cableada,
microprogramada) Stallings, W. & Stallings, Para profundizar en los
W. (2005). Organización y Conceptos Centrales, se
3.7 Memoria caché: arquitectura de recomienda la siguiente
Principios básicos y computadores. lectura:
elementos de diseño de la (7ma edición). Madrid: “Memoria cache”
caché (tamaño, Pearson.
correspondencia, [Capítulo 4.1 y 4.2]
algoritmos de sustitución,
política de escritura,
tamaño de línea, nivel de
caché, unificada o partida) Quiroga, I. P. (2010).
Arquitectura de
3.8 Las interrupciones Computadoras. Buenos
Aires: Alfaomega Grupo
Editor Argentino.
[Capítulos 1 y 8]

Quiroga, I. P. (2010).
Arquitectura de
3.9 Código nemónico. Computadoras. Buenos
Lenguajes de máquina de Aires: Alfaomega Grupo
nivel convencional. Editor Argentino.
Lenguaje ensamblador [Capítulo 11 y 11.4]

Stallings, W. & Stallings,


W. (2005). Organización y
3.10 Parámetros de arquitectura de
funcionamiento de los computadores.
diversos (7ma edición). Madrid:
microprocesadores del Pearson.
mercado [Capítulo 12.5 y 12.6]

Quiroga, I. P. (2010). Para profundizar en los


Arquitectura de Conceptos Centrales, se
3.11 Computadores de Computadoras. Buenos recomienda la siguiente
repertorio reducido de Aires: Alfaomega Grupo lectura:
instrucciones (RISC) Editor Argentino. “RISC”
3.12 Características [Capítulos 8 y 14]
generales de las
arquitecturas RISC
Stallings, W. & Stallings,
W. (2005). Organización y
3.13 Características CISC arquitectura de
frente a RISC computadores.
(7ma edición). Madrid:
Pearson.
[Capítulo 13]
Quiroga, I. P. (2010).
Arquitectura de
Computadoras. Buenos
3.14 Modelo de Von Aires: Alfaomega Grupo
Neumann Paralelismo a Editor Argentino.
nivel de instrucciones [Capítulo 14]
3.15 Procesadores
superescalares y
segmentados
3.16 Arquitecturas
avanzadas. Clasificación de
las arquitecturas
avanzadas
3.17 Conceptos de
arquitecturas Grid
3.18 Conceptos de
arquitecturas
reconfigurabes
3.19 Conceptos de
arquitecturas basadas en
servicios
3.20 Procesadores de la
prestación
3.21. Máquinas
algorítmicas: Introducción
3.22 Estructura general de
las máquinas de estado
3.23 Lenguaje de
descripción de hardware.
Componentes.
Procedimiento de diseño
3.24 Ejemplos de
máquinas de estado
algorítmico
3.25 Diseño de la unidad
de procesamiento
3.26 Diseño de la unidad
de control
MÓDULO 4
UNIDAD 4: MEDIOS DE
ALMACENAMIENTO
MASIVO
4.1 Grabación magnética. Stallings, W. & Stallings, AULA ABIERTA 4
Códigos de grabación W. (2005). Organización y
magnética arquitectura de Para profundizar en los
4.2 Medios magnéticos: computadores. Conceptos Centrales, se
discos rígidos, discos (7ma edición). Madrid: recomienda la siguiente
flexibles, organización de Pearson. lectura:
los discos magnéticos [Capítulo 6] “Medios magnéticos”
4.3 Cintas magnéticas
4.4 Discos ópticos: Para profundizar en los
características y principio Conceptos Centrales, se
de funcionamiento, CD- recomienda la siguiente
ROM, CD RW, DVD lectura:
4.5 Discos magneto-óptico: “Medios ópticos”
características y principio Y la publicación:
de funcionamiento “Archival Disc”
4.6 Medios transportables
(LS 120, Zip, Jazz, Sea
Quest, etc.): características
generales
UNIDAD 5:
PROCESAMIENTO DE
AUDIO
5.1 Teorema del muestreo AULA ABIERTA 4
5.2 Características Para profundizar en los
fundamentales de la Conceptos Centrales, se
conversión analógica a recomienda la siguiente
digital y viceversa lectura:
5.3 Proceso de obtención “Audio y video”
PCM (Modulación por
Codificación de Pulso)
5.4 Elementos funcionales
de una placa de audio
UNIDAD 6:
PROCESAMIENTO DE
VIDEO
6.1 Características del
procesamiento de video
6.2 Elementos importantes
y características
funcionales de las placas
de video
6.3 Tipos de pantallas y sus
funcionamientos
6.4 Buses y puertos
gráficos: características
principales
UNIDAD 7: DISPOSITIVOS
DE IMPRESIÓN
7.1 Tecnología de AULA ABIERTA 4
impresión: clasificación
7.2 Descripción del Para profundizar en los
funcionamiento básico de Conceptos Centrales, se
las distintas tecnologías de recomienda la siguiente
impresión (matriz de publicación:
punto, inyección de tinta, “Impresoras”
chorro de tinta, láser,
térmicas, etc.)
7.3 Los protters:
características y principio
de funcionamiento
Numeración,
codificación

Arquitectura del
Computador

1
Sistemas de numeración y
codificación
El sistema de En nuestra vida cotidiana, estamos acostumbrados a utilizar un sistema de
numeración decimal numeración para representar fechas, precios, edades, etcétera. Estamos tan
utiliza 10 símbolos, uno acostumbrados a usarlo, que podríamos pensar que es el único, pero no lo
para cada dedo de es. Las computadoras, de hecho, utilizan otros.
nuestras manos.

Sistemas de numeración decimal y binario


Este sistema es el que usamos diariamente, por ejemplo, para indicar la edad
de una persona: “24”. Pero ¿sabemos cómo funciona?
El sistema decimal está compuesto por 10 símbolos (0, 1, 2, 3, 4, 5, 6, 7, 8,
9), los cuales indican, cada uno, un valor distinto. Para contar, este sistema
comienza por el 0 y va sumando de a un dígito hasta llegar al 9. En ese
momento, al no haber más símbolos disponibles, se debe agregar una
columna a la izquierda y reiniciar el contador de la primera columna: el “10”
indica que se incrementó en 1 la segunda columna y se puso en 0 la primera.
Cuando la segunda columna se quede sin símbolos, se sumará una tercera y
así sucesivamente.

El número 5421 puede expresarse en potencias de base 10 de la siguiente


manera:
1 = 1 x 100 = 1;
2 = 2 x 101 = 20;
4 = 4 x 102 = 400;
5 = 5 x 103 = 5000.

Cuando se suman los cuatro resultados, se obtiene 5421.

Como las computadoras no utilizan los dedos de la mano para contar, sino
compuertas electrónicas cuya salida puede ser “prendida” (1) o “apagada”
(0), la cantidad de símbolos diponibles es 2. Este sistema de numeración se
denomina binario.

Al igual que el sistema decimal, para contar más de un dígito, se deben


sumar columnas, en este caso, compuertas.

El cero está representado por una sola columna con valor 0. El uno, con la
misma columna, pero ahora con valor 1. Al no existir mas símbolos, se agrega
una segunda columna para representar el dos, y se pone en 0 la primera: 10.
Para contar hasta 3, se debe incrementar en uno la primer columna: 11.

2
Este proceso continúa a medida que se van incrementando los valores.
Para conocer el valor decimal de un número binario, se debe sumar el valor
de cada bit por potencias de base 2.

Ejemplo de conversión de 10100 en binario a 20 en decimal:

10100
1 = 1 x 24 = 16;
0 = 0 x 23 = 0;
1 = 1 x 22 = 4;
0 = 0 x 22 = 0;
0 = 0 x 20 = 0.

Otros sistemas: octal y hexadecimal


El sistema octal utiliza 8 símbolos (desde el 0 hasta el 7), mientras que el
hexadecimal utiliza 16: del 0 al 9 y desde la A hasta la F.

Para ambos sistemas, la representación de números entre el 0 y el 7 es igual


que en el sistema decimal ya que utiliza los mismos símbolos, pero, en el
caso del octal, para representar un 8 decimal se requieren dos dígitos: 10.

El sistema hexadecimal permite “comprimir” la información, ya que utiliza


menos dígitos que otros sistemas para representar el mismo número.

En la Figura 1 pueden observarse las equivalencias entre los primeros 16


números para los cuatro sistemas. Nótese, por ejemplo, que para
representar el número 15 decimal, el sistema binario utiliza 4 columnas,
mientras que el hexa solo utiliza una.

El sistema hexadecimal representa por cada dígito medio byte. Recordando


que un byte equivale a ocho bits, para representar bytes en el sistema hexa,
se deberán usar 2 columnas.

3
Figura 1: Equivalencias entre sistemas de numeración

Fuente: Quiroga, 2010, p. 28.

Para más información sobre los sistemas de numeración, sobre cómo realizar
operaciones de suma y resta, conversiones de números enteros y fraccionales,
consulta las páginas 25 a 47 del libro Arquitectura de Computadoras, de P. Quiroga
(2010).

Codificación
Las computadoras utilizan un lenguaje diferente al de las personas para
procesar la información. Para poder transformar nuestro lenguaje al
lenguaje de una computadora, se requiere una relación denominada
codificación.

La codificación consiste en asignar una combinación binaria a cada carácter


que se desea representar. A mayor cantidad de bits, mayor cantidad de
caracteres que se podrán representar. Por ejemplo, un sistema de
condificación de 1 bit, solo podrá representar dos caracteres: la letra “A” con
un 0 y la letra “B” con un “1”.

4
Figura 2: Distintos tipos de representaciones de datos

Fuente: Quiroga, 2010, p. 53.

En la Figura 2 se observan diferentes sistemas de codificación para


representar datos de naturaleza diferente.

Representaciones alfanuméricas

Un ejemplo es el código ASCII, que utiliza 7 bits, por lo que la cantidad de


caracteres máxima es 27 = 128. Este número limita la cantidad de letras y
números que pueden codificarse: letras mayúsculas y minúsculas del
alfabeto inglés, números decimales del 0 al 9, algunos símbolos y 33
caracteres de control.

Para poder codificar un número mayor de caracteres, se implementó el


denominado ASCII extendido, el cual agrega 1 bit a los 7 de ASCII. El total de
8 bits permite 256 caracteres.

Representaciones decimales

Estos sistemas codifican números decimales en bloques de 4 bits. Un


ejemplo es el código BCD (decimal codificado a binario) con sus diferentes
variantes. (Quiroga, 2010).

 BCD puro o natural (8421): los pesos de cada bloque coinciden con los
pesos en binario: 8 para el bit de mayor peso, 4 para el segundo, 2 para
el tercero, y 1 para el bit con menor peso. (Quiroga, 2010).

Ejemplos:

5
Tabla 1: Ejemplos de número decimal, binario y BCD 8421

Número decimal Binario puro BCD 8421


5 0101 0101
50 0011 0010 0101 0000
500 0001 1111 0100 0101 0000 0000

Fuente: adaptado de Quiroga, 2010.

 BCD exceso tres: a partir del BCD puro, debe sumarse un 3 binario a cada
cifra.

Tabla 2: Ejemplos de número decimal, BCD 8421 y BCD exceso 3

Número decimal BCD 8421 BCD exceso 3


5 0101 1000
50 0101 0000 1000 0011
500 0101 0000 0000 1000 0011 0011

Fuente: elaboración propia.

 BCD Aiken (2421). El nombre indica los pesos que se asignan.

Tabla 3: Ejemplos de número decimal, BCD 8421 y BCD 2121

Número decimal BCD 8421 BCD 2421 (Aiken)


5 0101 1010
50 0101 0000 1011 0000
500 0101 0000 0000 1011 0000 0000

Fuente: elaboración propia.

Representaciones para números no decimales


Estos sistemas sirven para realizar operaciones aritmeticas con datos
binarios o en otro tipo de numeración distinta a la decimal.

6
Para más información sobre los sistemas de codificación, consulta las páginas 49 a
72 del libro Arquitectura de Computadoras, de P. Quiroga (2010).

7
Referencias
Quiroga, P. (2010). Sistemas numéricos. Representación de datos en la
computadora. En P. Quiroga, Arquitectura de Computadoras (pp. 25-72). Buenos
Aires: Alfaomega.

8
Circuitos
digitales

Arquitectura del
Computador

1
Circuitos digitales
Las computadoras tienen como objetivo principal procesar datos. Este
El procesador Intel 8086
procesamiento se lleva a cabo mediante la utilización de circuitos digitales
(año 1976) contenía,
aproximadamente, que realizan operaciones aritméticas y lógicas. Por ejemplo, un reloj digital
29.000 transistores. El deberá tener un circuito que cuente segundos, minutos y horas, y otro para
procesador Apple A10 que muestre esa información en un display.
(año 2016),
aproximadamente,
Los circuitos se representan como una caja negra que posee entradas y
3.300 millones.
salidas. En su interior, esta contiene compuertas lógicas que se construyen
con transistores. El número de estos determina lo que se denomina el nivel
de integración de un circuito integrado. Este número puede ir de 10 a 100
transistores, para un circuito integrado SSI (Small Scale Integration), hasta
más de un millón de transistores (ULSI o Ultra Large Scale Integration).
Las entradas y las salidas de los circuitos pueden tomar dos valores: 0 y 1.
Para n entradas, habrá 2n salidas posibles. (Quiroga, 2010).

Circuito codificador decimal a BCD


Este es un ejemplo de un circuito combinacional. En los circuitos
combinacionales, las salidas dependen de los valores que tengan las
entradas y las operaciones en su interior.

Este circuito sirve para convertir a código BCD los códigos que resultan de
presionar las teclas 0 a 9 de un teclado.

Como hay 10 teclas, el número de entradas es 10 . Como el objetivo es


codificar a BCD, el número de salidas es 4.

Figura 1: Circuito codificador decimal a BCD

Fuente: Quiroga, 2010, p. 119.

2
¿Qué sucede cuando el usuario presiona una tecla?

Cada tecla tiene un interruptor y, cuando es presionada, cierra un circuito


eléctrico que alimenta la entrada correspondiente del circuito codificador.
Luego, el circuito debe realizar operaciones de modo tal que cumpla con la
tabla de verdad.

Figura 2: Tabla de verdad codificador decimal a BCD

Fuente: Quiroga, 2010, p. 119.

Figura 3: Esquema de codificación decimal a BCD

Fuente: Quiroga, 2010, p. 119

Oros circuitos combinacionales


 Decodificadores de código. Se utilizan, por ejemplo, para decodificar un
código BCD en un display de 7 segmentos. Son aplicados en calculadoras
o relojes. (Quiroga, 2010).
 Demultiplexor. Posee una entrada y múltiples salidas, lo que le permite,
por ejemplo, transmitir información desde un canal serie a otro paralelo.
(Quiroga, 2010).
 Multiplexores. Poseen múltiples entradas y una única salida. Realizan el
proceso inverso al demultiplexor. (Quiroga, 2010).

3
Un ejemplo de circuito decodificador de BCD a 7 segmentos se observa en la
Figura 4. El circuito tiene 4 entradas (una por bit) y 7 salidas (una para cada
LED que ilumina el segmento).

4
Figura 4: Esquema de codificación decimal a BCD

Fuente: Quiroga, 2010, p. 121.

A continuación, se aprecia un ejemplo de un multiplexor utilizado para


realizar cuatro operaciones lógicas. Mediante los bits de control (A y B), es
posible seleccionar cuál operación se va a mostrar en la salida R. Si A y B
toman los valores 00, la salida será la de la compuerta NOT; tomarán los
valores 01 para la compuerta AND, 10 para OR y 11 para XOR.

Figura 5: Ejemplo multiplexor

Fuente: Quiroga, 2010, p. 126.

Para más información sobre circuitos secuenciales, consulta las páginas 113 a 131
del libro Arquitectura de Computadoras, de P. Quiroga (2010).

Circuitos secuenciales
Un circuito secuencial es aquel que no solo depende de los valores de su
entrada, sino también del estado anterior del circuito.

5
Este tipo de circuitos se utilizan como almacenamiento temporal, de alta
velocidad y baja capacidad. (Quiroga, 2010).

Los denominados biestables o flip-flops permiten almacenar un solo bit,


aunque, en su construcción básica, no permiten volver al estado original.
Como se observa en la siguiente figura, la salida F’ será siempre 0 cuando se
inicie el circuito y S sea 0. Una vez que el bit S cambie a 1, la salida F’ cambiará
a 1 y no podrá ser puesta nuevamente en 0. Esta situación no permite que
el circuito funcione como memoria, ya que impide que sea puesto en 0. La
otra condición es que el circuito retenga el bit luego de desactivar las
entradas.

Figura 6: Circuito biestable

Fuente: Quiroga, 2010, p. 131.

Modificando el circuito, es posible lograr el objetivo de que sirva como elemento


de memoria.

Figura 7: Circuito biestable modificado

Fuente: Quiroga, 2010, p. 132.

En la figura anterior se observa la modificación. Una nueva entrada denominada R


(reset) permite volver a cero el circuito.
Puedes realizar la tabla de verdad de este circuito para verificar su funcionamiento.
El circuito de la figura anterior puede transformarse mediante operaciones
algebraicas para y leyes de Morgan, para que pueda ser implementado con
compuertas NOR. Este biestable se denomina R-S.

6
Figura 8: Circuito biestable R-S

Fuente: Quiroga, 2010, p. 133.

Para que un conjunto de biestables trabajen en forma sincronizada, se utiliza una


señal de reloj (clock). El momento en que todas las entradas cambian de estado
está determinado por el pulso del reloj. Se denomina a estos biestables sincrónicos.

Para más información sobre flip-flops, consulta las páginas 131 a 136 del libro
Arquitectura de Computadoras, de P. Quiroga (2010).

Registros
Se denomina registro la función digital que permite retener información de
forma temporal. Los registros están compuestos por uno o mas biestables.
Los registros son los tipos de memoria más rápida, por lo que son usados por
el microprocesador para acceder a los datos más en sus operaciones
aritméticas y lógicas.

Existen diferentes tipos de registro:

 Registros paralelo-paralelo: transfieren información.


 Registros contadores: cuentan eventos.
 Registros de desplazamiento: permiten realizar operaciones aritméticas
mediante desplazamientos.

7
Referencias
Quiroga, P. (2010). Lógica digital. En P. Quiroga, Arquitectura de Computadoras
(pp. 113-143). Buenos Aires: Alfaomega.

8
Conceptos
básicos

Arquitectura del
Computador

1
Arquitectura básica
Organización y arquitectura de una computadora

En la actualidad existen diversos tipos de computadoras: mainframes,


servidores, PC, laptops, tablets, smartphones. Todas ellas cumplen una
misma misión: procesar datos que ingresan los usuarios a través de
dispositivos de entrada, para luego mostrarlos, almacenarlos o enviarlos a
otro destino.
Los programas o aplicaciones que instalamos contienen un conjunto de
instrucciones que resuelven problemas computacionales.

Componentes de una computadora

Los diversos componentes son elementos físicos que permiten que las
computadoras realicen sus funciones.

En la Figura 1 se observan los componentes de una computadora.

Figura 1: Componentes de una computadora

Fuente: Quiroga, 2010, p. 2.

2
Como se puede observar en la figura, estos componentes son: (Stallings
2005).
 CPU o unidad de procesamiento central.
 Memoria Principal.
 Dispositivos de entrada.
 Dispositivos de entrada/salida.
 Dispositivos de salida.

Modelo de Von Neumann

El modelo de Von Neumann describe una arquitectura de una computadora


digital de programa almacenado.
Una computadora con programa almacenado es la evolución de sus
antecesoras. (Stallings, 2005).

La primera máquina se remonta al año 1642, cuando Blas Pascal construyó


una calculadora para sumar y restar basada en ruedas con 10 posiciones.
Como utilizaba numeración decimal, cuando una rueda pasaba de 9 a 0, la
cuenta de la rueda de la izquierda aumentaba en uno.
29 años despúes, se inventó una calculadora capaz de multiplicar mediante
sumas sucesivas.

En 1823, se comenzó a construir la primera máquina digital, la cual utilizaba


tarjetas perforadas para almacenar las instrucciones. Estas tarjetas
perforadas fueron sumamente importantes durante la evolución de las
computadoras, ya que, a fines del siglo XIX y principios del XX, se utilizaron
para grandes procesamientos de datos.
IBM perfeccionó la técnica de tarjetas perforadas diseñando dispositivos de
lectura y tarjetas estándar de 80 columnas, y esta tecnología tuvo su auge
entre 1930 y 1970. (Quiroga, 2010).

En la siguiente figura se observa una computadora formada por una CPU y


una memoria. Los datos y el programa son leídos por un lector de tarjetas.
La computadora realizará las operaciones indicadas por el programa y
arrojará resultados a través de una impresora.

3
Figura 1: Esquema lógico del sistema de tarjetas perforadas

Fuente: Quiroga, 2010, p. 6.

En sus inicios, este tipo de computadoras realizaba, primero, la lectura del


programa; luego se introdujeron los datos; finalmente, surgieron diseños
con capacidad suficiente como para almacenar programas. En las máquinas
tradicionales, se requería cambiar los circuitos internos.

En 1945, Von Neumann construyó una máquina que se denominó


computadora. Esta máquina no tenía un propósito específico como las
anteriores, sino que permitía guardar diferentes programas en la memoria
sin la necesidad de tener conexiones fijas. (Quiroga, 2010).

Este modelo todavía está vigente y se basa en tres principios (Quiroga, 2010,
p. 7).

 Máquina electrónica digital que trabaja con información codificada en


sistema binario.
 Programa almacenado en la memoria.
 Posibilidad de provocar una ruptura de secuencia de instrucciones en un
programa.

La arquitectura del modelo se observa en la siguiente figura. Se puede


apreciar que este modelo es similar al usado por las computadoras actuales.

 La CPU, o unidad de procesamiento central, formada por:


o ALU o unidad aritmético-lógica, encargada de procesar la
información;
o CU o unidad de control, encargada de permitir la ejecución de
instrucciones al asegurar que las operaciones se realicen en forma
secuencial y sincronizada;
o memoria principal.
 Dispositivos de entrada/salida.

4
Todos los módulos (CPU, memoria, e/s) están interconectados entre sí por
buses. Estos buses son caminos por donde viajan los datos. Como son
compartidos, la CU se encarga de gestionarlos.

Figura 2: modelo de Von Neumann

Fuente: Quiroga, 2010, p. 8.

Funciones básicas de cada componente


La unidad básica de información utilizada por las computadoras es el bit, que
puede tomar un valor 1 o 0. Cuando estos bits son agrupados mediante
algún sistema de codificación, se forman los caracteres y números.
Estos caracteres son procesados por las computadoras en lo que se
denomina “unidad de trabajo” o palabra de CPU. El tamaño de los registros
está directamente relacionado con el tamaño de la palabra. Si el tamaño de
los registros es de 8 bits, el tamaño de las palabras también tomará ese valor.
Si se desea realizar operaciones para operandos de 64 bits, se realizará en 4
pasos.

CPU

La unidad de procesamiento central se divide en tres unidades: de ejecución,


de decodificación y de prebúsqueda.
La unidad de prebúsqueda se conecta con la memoria principal para
recolectar datos e instrucciones. Como se pueden recibir más de una
instrucción, existe una cola para almacenarlas hasta que sean enviadas a la
unidad de decodificación.

5
La unidad de decodificación se encarga de convertir las instrucciones a un
microcódigo, es decir, a un lenguaje de menor nivel.

La ejecución de la instrucción se realiza en la unidad de ejecución. La ALU


está compuesta por circuitos que realizan operaciones aritméticas (suma,
sustracción, desplazamiento) y lógicas (OR, AND, NOT). (Quiroga, 2010).

Figura 3: Arquitectura de la CPU

Fuente: Quiroga, 2010, p. 17.

Un microprocesador es una CPU compleja capaz de realizar una gran


cantidad de operaciones. La evolución de las técnicas ha hecho posible
concentrar más circuitos en menos espacio. Los procesadores actuales
tienen una longitud de palabra de 64 bits.

La velocidad con la que un microprocesador realiza las operaciones depende


de la frecuencia del reloj del sistema. La unidad de frecuencia se denomina
Hertz, y sus múltiplos son KHz, MHz, GHz. Por ejemplo, 1GHz significa que se
realizan 1000 millones de ciclos por segundo.

Dispositivos de entrada / salida

Estos dispositivos son los encargados de transferir los datos para que sean
procesados por la CPU, o el proceso inverso: guardarlos o mostrarlos una vez
que han sido procesados. (Stallings, 2005).

Algunos dispositivos de entrada / salida son:


 teclados y mouse (entrada);

6
 monitor (salida);
 pantalla táctil (entrada / salida);
 impresora (salida);
 parlantes (salida);
 micrófono (entrada);
 disco rígido (entrada / salida);
 discos flash (entrada / salida);
 placa de red (entrada / salida).

7
Referencias
Quiroga, P. (2010). Memorias. En P. Quiroga, Arquitectura de Computadoras (pp.
207-256). Buenos Aires: Alfaomega.

Stallings, W. (2005). Memoria Interna. En W. Stallings, Organización y Arquitectura


de Computadoras (pp. 149-171). Madrid: Pearson Educación.

8
Computación de Altas Prestaciones Ecológica
Lucía González, Federico Uribe, Javier Balladini, Laura Sánchez

Facultad de Informática, Universidad Nacional del Comahue

Buenos Aires 1400, Neuquén Capital, Tel. 0299 - 4490300

{lgonzalez.nqn, fede.uribe83}@gmail.com {jballadi, lsanchez}@uncoma.edu.ar

Resumen nuevas y cada vez más complejas tecnologías de


cómputo paralelo.
La computación de altas prestaciones ha Nuestro grupo de investigación trabaja en
tenido, por décadas, el único objetivo de in- colaboración con el departamento de Arqui-
crementar la velocidad de procesamiento de tectura de Computadores y Sistemas Opera-
las aplicaciones computacionalmente comple- tivos (CAOS) de la Universidad Autónoma de
jas. Dado el tamaño actual de las supercom- Barcelona (España). Uno de los objetivos de es-
putadoras, el consumo energético de las mis- ta colaboración es avanzar en el estudio de la
mas es tan elevado que producen un tremen- citada línea de investigación. Del departamen-
do impacto económico. Además, la falta de ex- to de CAOS, principalmente se encuentran in-
plotación de las energías renovables y limpias volucrados el Dr. Emilio Luque, la Dra. Dolores
hacen que la producción energética afecte signi- Rexachs y el Dr. Remo Suppi, entre otros.
cativamente en lo ecológico y social. Estos fac-
tores nos han motivado a crear una nueva línea
de investigación denomina Computación de al- 2. Introducción
tas prestaciones ecológica. Hemos centrado los
estudios tanto en los procesadores de propósi- La computación de altas prestaciones ha
to general (CPU, Central Processing Unit ) co- tenido, por décadas, el único objetivo de in-
mo en las aceleradoras basadas en unidades de crementar la velocidad de procesamiento de
procesamiento gráco (GPU, Graphics Process- las aplicaciones computacionalmente complejas,
ing Unit s). El objetivo es disminuir el consumo normalmente cientícas. Las supercomputado-
energético de las plataformas paralelas al ejecu- ras eran diseñadas exclusivamente con la inten-
tar aplicaciones cientícas. Sin embargo, se pre- ción de aumentar la cantidad de operaciones de
tende encontrar un compromiso entre la pérdida coma otante por segundo (FLOPS, FLoating-
de rendimiento y el ahorro energético. point OPerations per Second ). Esto se ve re-
ejado en la lista del TOP500 [1], que utiliza
la métrica FLOPS para determinar el orden de
1. Contexto clasicación de las supercomputadoras. Sólo im-
portaban las prestaciones y, principalmente para
El presente plan de trabajo está enmar- el dueño de la supercomputadora, la relación
cado dentro de la línea de investigación precio/prestaciones. No solo se ha doblado el
Computación de altas prestaciones ecológica número de transistores cada 1824 meses para
(GreenHPC, Green High Performance Comput- incrementar las prestaciones de un nodo (ley de
ing ) del proyecto Software para aprendizaje y Moore), sino que también se ha doblado el con-
trabajo colaborativo - Parte II de nuestra Uni- sumo energético [4].
versidad. Dicha línea se centra en el estudio de Así, se ha propiciado la aparición de su-
los sistemas de cómputo paralelo y aplicaciones percomputadoras que consumen enormes can-
cientícas computacionalmente complejas, cuyo tidades de energía eléctrica y producen tan-
n es disminuir el consumo energético de la to calor que se requieren sistemas de refrige-
plataforma evitando el aumento del tiempo de ración de dimensiones extravagantes para ase-
ejecución total de las mismas. Se pretende que gurar su correcto funcionamiento. Según datos
las metodologías, técnicas y herramientas desa- del Lawrence Livermore National Laboratory
rrolladas asistan a los equipos cientícos en sus (LLNL), por cada watt (W) de energía con-
tareas de investigación, haciéndoles viables las sumido, se gastan 0,7 W de refrigeración para

1
disipar la energía. Dado el tamaño actual de dad de los circuitos, mientras que el estático es el
las supercomputadoras, el consumo energético consumo de los circuitos en estado ocioso (tam-
de las mismas es tan elevado que producen un bién denominado en inglés como idle power o
tremendo impacto económico. En 2005, el gas- leakage ). Las técnicas para reducir el consumo
to anual de energía eléctrica del LLNL ya era energético de los sistemas de cómputo se ori-
de 14,6 millones de dolares [4]. En 2002, el Dr. entan a ambos tipos de consumos, e involucran
Eric Schmidt, CEO de Google, dijo lo que más tanto al hardware como al software. Es impor-
importa a los diseñadores de computadoras de tante mencionar que algunas técnicas pueden re-
Google no es la velocidad sino el consumo ener- ducir la potencia pero no necesariamente la ener-
gético, porque los centros de datos pueden con- gía, y a la inversa.
sumir tanta electricidad como una ciudad [7]. Existen varias técnicas para ahorrar energía
Muchos centros de cómputo arman que el gas- en sistemas de HPC, de las cuales las más im-
to anual en energía es equivalente al costo de portantes son:
adquisición de la supercomputadora.
El consumo energético no solo tiene un im-
Técnicas del nivel lógico y de circuito
pacto económico. La falta de explotación de las
energías renovables y limpias hacen que la pro-
Se puede reducir el tamaño de los transistores
ducción energética también afecte en lo ecológi-
para reducir el consumo de energía dinámico,
co y social. Cabe resaltar que la mayor cantidad
sin embargo, hay que tener en cuenta que se
(y más grandes) de las supercomputadoras del
incrementa el retardo de los mismos. También
mundo están en EEUU. La mitad de la energía
se trabaja con el reordenamiento de los tran-
eléctrica en éste país se produce con carbón [2],
sistores, compuertas lógicas y señales, se desa-
impactando fuertemente en el medio ambiente,
rrollan nuevos ip-ops que consumen menos
y la salud y riesgo de vida de las personas, por
energía, y se rediseña la lógica de control de
causa de la extracción del mineral y la contami-
los procesadores y el algoritmo que determina
nación por combustión del carbón, entre otros.
el voltaje necesario según la frecuencia de reloj
La computación ecológica trata de evitar los
utilizada [12].
daños resultantes del alto consumo energético
de las computadoras. En el 2007 el Green500
publicó su primera lista, que clasica a las su- Explotación del paralelismo
percomputadoras de mayor eciencia energéti-
La era multicore surge como solución a tres
ca del mundo. Así, comenzó la nueva era de la
computación ecológica, evitando el enfoque de
problemas: el memory wall, el ILP wall, y el

rendimiento a cualquier costo. Hoy en día, el


power wall power wall
[9]. El (barrera energéti-
ca) se reere al límite en la cantidad de energía
TOP500 no es la única clasicación de interés
que puede ser disipada, en un chip de unidad de
ya que el Green500 ha tomado gran relevancia.
procesamiento central (CPU, Central Processing
Unit ), utilizando técnicas económicas de refrige-
Estado del arte ración. Actualmente, los procesadores en vez de
tener un único núcleo rápido, tienen varios nú-
De acuerdo con la denición de San Muruge-
cleos lentos. Por ejemplo, Intel ha pasado de un
san [8], se dene el campo de la computación
unicore Pentium 4 Prescott (2004) de 3,6 GHz
ecológica como el estudio y práctica del dise-
y 103 watts de potencia, a un dual-core Core
ño, fabricación, uso y disposición de las com-
2 Kentseld (2007) de 2,6 GHz y 95 watts.
putadoras, servidores y subsistemas relacionados
Siempre y cuando sea posible obtener un buen
como monitores, impresoras, almacenamiento y
speedup 1
, el intercambio de velocidad de reloj
sistemas de redes y comunicación ecientes y
por paralelismo permite ahorrar energía [5].
efectivos con un impacto mínimo o nulo en el am-
biente. El autor identica cuatro formas en las
cuales cree que los efectos de las computadoras Interconexiones entre unidades fun-
en el ambiente deberían ser considerados: diseño cionales y nodos
ecológico, fabricación ecológica, uso ecológico y
Estas técnicas se ocupan de rediseñar los bu-
eliminación ecológica.
ses, ya sea segmentándolos, codicando los datos
El factor más inuyente en relación al uso
ecológico es el consumo energético. Hay dos for- 1 esta métrica representa el incremento de la veloci-
mas de consumo energético, el dinámico y el es- dad de ejecución de un algoritmo paralelo respecto a su
tático. El consumo dinámico surge de la activi- correspondiente algoritmo secuencial.

2
transmitidos para minimizar los cambios o tran- ociosos. Algunos componentes posiblemente hi-
siciones de la líneas de los buses (entre 0 y 1), re- bernables (según cada sistema) son los discos,
duciendo su voltaje, o reemplazándolos por redes núcleos, red, y memoria.
para soportar mayores anchos de banda y conex-
iones concurrentes (tal es el caso del QuickPath Gestión de energía al nivel del compilador
Interconnect de Intel o el Hyper Transport de
AMD). No solo es importante reducir el consumo Hay muchas formas en que un compilador

energético de la conectividad entre unidades fun- puede ayudar a disminuir el consumo energético.

cionales internas al nodo, sino también entre no- Algunas optimizaciones de rendimiento son tam-

dos. Por lo tanto, también se trabaja en el redi- bién beneciosas para ahorrar energía. Algunos

seño de las redes de interconexión de los sistemas ejemplos son la reducción de accesos a memoria,

paralelos. y el acercamiento de los datos al procesador ha-


ciendo uso preferiblemente de registros y caches
de niveles bajos. No obstante, algunas optimiza-
Técnicas aplicables a memorias
ciones de rendimiento incrementan el tamaño del

Una posible estrategia es dividir la memoria código o el paralelismo, lo que podría incremen-

en componentes más pequeños, y activar solo los tar el uso de los recursos y los picos de potencia.

circuitos de memoria necesarios para cada acce- Por lo tanto, es necesario hacer optimizaciones

so. La jerarquía de memoria de los sistemas tam- especícas para energía.

bién contribuye a reducir el consumo energético.


Por ejemplo, si tenemos un sistema de memoria Gestión de energía al nivel de aplicación
con un nivel de cache, el acceso a la cache con-
Es posible ahorrar energía al nivel de apli-
sumirá menos energía que el acceso a la memoria
cación. Algunas técnicas se basan en adaptar
principal por ser la primera de menor tamaño.
las aplicaciones al entorno de ejecución, propor-
cionando metodologías para diseñar aplicaciones
Arquitecturas adaptables de procesadores energéticamente ecientes. Otras se ocupan de
desarrollar interfaces de programación de apli-
Algunas estructuras de hardware pueden ser
caciones (API, Application Programming Inter-
diseñadas de tal manera que sus parámetros
face ) para intercambiar datos entre los diferen-
sean congurables según necesidad. Esto puede
tes niveles: hardware, sistema operativo, y apli-
permitir utilizar los recursos mínimos que cada
cación. Compartir información entre estos nive-
código requiere para su ejecución. Por ejemplo,
les permite tomar mejores decisiones para re-
se han propuesto caches adaptables que podrían
ducir el consumo energético. Por ejemplo, si el
ser parcialmente activadas de acuerdo al patrón
disco se ha hibernado, la aplicación podría acti-
de acceso y carga de trabajo. También se pro-
var el disco un instante antes de tener que ac-
pusieron colas de instrucciones adaptables, que
cederlo. Así, se evitaría el retardo de activación
pueden ser parcialmente activadas.
del dispositivo.

Escalado dinámico del voltaje


3. Líneas de investigación
La reducción del voltaje de alimentación re-
duce el consumo energético [10]. Sin embargo, se De las técnicas expuestas para reducir el con-
incrementa el retardo de las compuertas lógicas, sumo energético en sistemas de cómputo para-
por lo que debe reducirse la frecuencia del reloj lelo nos interesan: explotación del paralelismo,
para permitir que el circuito funcione correcta- escalado dinámico del voltaje, hibernación de
mente. Su aplicación no es trivial ya que puede recursos, y gestión de energía al nivel de apli-
resultar en una pérdida de rendimiento intolera- cación. No se pretende desarrollar nuevas tec-
ble, o en un incremento energético causado por nologías hardware que tengan una mayor e-
el mayor tiempo de ejecución del código. ciencia energética, sino gestionar (mediante soft-
ware) el hardware existente para reducir el con-
sumo energético. Nuestra investigación se divide
Hibernación de recursos
principalmente en dos líneas:
Los componentes de una computadora con- Una línea de investigación está relaciona-
sumen energía aún cuando están ociosos. Así, da al uso de aceleradoras del tipo unidad de
la técnica de hibernación de recursos apaga o procesamiento gráco (GPU, Graphics Process-
desconecta los componentes en los momentos ing Units ), para ejecutar aplicaciones cientí-

3
cas. Las GPU son microprocesadores many-core.
Una variedad de estudios [11, 6] han demostrado
la capacidad de las GPU para realizar cómputo
cientíco a una gran velocidad y a un bajo con-
sumo energético. Nuestro objetivo es encontrar
una metodología que permita disminuir el con-
sumo energético de aplicaciones que se ejecutan
en GPUs.
La otra línea de investigación está enfocada en
aplicaciones desarrolladas bajo el paradigma de
programación paralela SPMD ( Single Program
Multiple Data ), que ejecuta múltiples instancias
de un mismo programa con diferentes conjuntos
de datos. Como máquina paralela se considera
un cluster de nodos con múltiples procesadores Figura 1: Comparación entre GPU y CPU
multicore, y núcleos con escalado dinámico de
voltaje y frecuencia de CPU. El objetivo es
denir una metodología para disminuir el con- El siguiente paso es avanzar hacia la predic-
sumo energético producido por el sistema para- ción del consumo energético que produce la eje-
lelo al ejecutar aplicaciones SPMD, mientras se cución de diferentes tipos de aplicaciones.
maximiza el rendimiento.

4.2. Computación de altas presta-


ciones ecológica con CPUs
4. Avances y resultados
Los experimentos que se están llevando a
cabo, se realizan bajo un sistema paralelo In-
A continuación se presentan los avances y re-
tel Server System SC5650BCDP con dos proce-
sultados de las dos líneas mencionadas.
sadores dual-core Intel Xeon E5502 y 16GB de
memoria principal (8GB por socket). Inicial-

4.1. Computación de altas presta- mente nos hemos planteado estudiar el compor-
tamiento energético y de rendimiento de dife-
ciones ecológica con GPUs
rentes tipos de programas a diferentes frecuen-
Inicialmente se comparó el consumo energéti- cias de reloj de CPUs. En uno de estos estu-
co y el rendimiento de una implementación en dios vericamos que el modelo de programación
GPU y otra en CPU de un algoritmo de mul- paralela seleccionado para desarrollar las apli-
tiplicación de matrices. La versión sobre GPU caciones tiene incidencia en el consumo ener-
utiliza el lenguaje OpenCL que implementa la gético de la plataforma [3]. A partir de estos
arquitectura CUDA. La alternativa sobre CPUs datos nos propusimos avanzar en la predicción
emplea la API de OpenMP, que implementa un del consumo energético de diversos tipos de apli-
paradigma de programación paralela de memo- caciones.
ria compartida. Para predecir el consumo energético nos

Los experimentos que reeren a GPU se reali- planteamos desarrollar microbenchmarks que

zan sobre un sistema con un procesador dual- nos permitan relacionar operaciones de cóm-

core Intel Pentium 4 E7400, 2GB de memo- puto y comunicaciones con consumos energéti-

ria principal y una GPU NVIDIA de 32 nú- cos. Hasta el momento creamos dos microbench-

cleos GeForce 9500GT. Los que respectan a marks basados en accesos a datos:

CPU se realizan sobre un sistema paralelo In-


L1 Todos los accesos son prácticamente resuel-
tel Server System SC5650BCDP con dos proce-
tos en el primer nivel de la cache (L1).
sadores dual-core Intel Xeon E5502 y 16GB de
memoria principal (8GB por socket). En el grá-
Mem Todos los accesos se resuelven en la
co 1 se muestra la eciencia energética y el
memoria, es decir, cada acceso produce un
rendimiento que se obtuvo en ambos experimen-
fallo en los tres niveles de cache del proce-
tos. Con esta prueba conrmamos que ciertas
sador E5502.
aplicaciones ejecutan con mayor eciencia ener-
gética y rendimiento en sistemas paralelos que La gura 2 muestra el efecto de la disminución
utilizan GPUs. de la frecuencia (de la máxima a la mínima) de

4
Computación de Altas Prestaciones Ecológica
en Cloud Computing.

6. Agradecimientos

La empresa Transener S.A. colabora con es-


ta investigación realizando las mediciones de
consumo energético de nuestros sistemas de
cómputo paralelo. Queremos expresar nuestro
agradecimiento a Guillermo Silva y Jorge Be-
liera, pertenecientes a la citada empresa, por su
gran ayuda, asesoramiento técnico y predisposi-
ción.
Figura 2: Resultados de la ejecución de los mi-
crobenchmarks de CPUs

Referencias
las CPUs en la ejecución de ambos microbench-
[1] Sitio web del top500:
marks. Por cada microbenchmark se observa el
http://www.top500.org/ (accedido en
aumento del tiempo de ejecución, el ahorro ener-
octubre de 2010).
gético, y la reducción de la potencia máxima. La
disminución de la frecuencia en el benchmark
[2] U.s. geological survey,
Mem produce un ahorro energético signicativo
http://energy.usgs.gov/coal.html (accedido
(11 %) con una pérdida mínima de rendimiento
en octubre de 2010).
(0,6 %). Además, la potencia máxima se reduce
pronunciadamente (11,5 %), lo cual permite ten- [3] Javier Balladini, Eduardo Grosclaude,
er una infraestructura eléctrica y sistema de re- Mauricio Hanzich, Remo Suppi, Dolores
frigeración de menores capacidades. En caso de Rexachs, and Emilio Luque. Incidencia de
que un aumento del tiempo de ejecución de 0,6 % los modelos de programación paralela y es-
no sea signicativo, una aplicación con las mis- calado de frecuencia de cpus en el con-
mas características del microbenchmark Mem sumo energético de los sistemas de hpc.
convendría ejecutarse a la mínima frecuencia de XVI Congreso Argentino de Ciencias de la
reloj de CPU. Computación (CACIC 2010), pages 172
En el caso del benchmark L1, la disminución 181, Octubre 2010.
de la frecuencia aumenta el tiempo de ejecución
[4] Wu-Chun Feng. The importance of be-
considerablemente (16 %). El ahorro energético
ing low power in high-performance comput-
es nulo, lo que implica que en ciertos caso no
conviene disminuir la frecuencia. La única venta-
ing.Cyberinfrastructure Technology Watch
ja es que se consigue una reducción signicativa
Quarterly (CTWatch Quarterly), 1(3), Au-
gust 2005.
(14,30 %) de la potencia máxima.

[5] Wu-Chun Feng. Low power computing


for eas, mice, and mammoth - do they
5. Formación de recursos hu- speak the same language? Cyberinfras-
manos tructure Technology Watch Quarterly (CT-
Watch Quarterly), 1(3), August 2005.
Los estudios aquí expuestos tienen como ob-
[6] Naga K. Govindaraju, Brandon Lloyd, Yuri
jetivo formar recursos humanos a nivel de grado
Dotsenko, Burton Smith, and John Man-
y postgrado. Actualmente, Federico Uribe está
ferdelli. High performance discrete fourier
desarrollando su tesis de Licenciatura en Cien-
transforms on graphics processors. InPro-
cias de la Computación en la línea de Com-
ceedings of the 2008 ACM/IEEE conference
putación de Altas Prestaciones Ecológica con
on Supercomputing, SC '08, pages 2:12:12,
GPUs. Lucía González es becaria de investi-
Piscataway, NJ, USA, 2008. IEEE Press.
gación de pregrado que trabaja en la línea Com-
putación de Altas Prestaciones Ecológica con [7] John Marko and Steve Lohr. Intel's huge
CPUs. Además, estamos desarrollando un plan bet turns iy. New York Times, September
de investigación de doctorado en el tema de 29, 2002.

5
[8] San Murugesan. Harnessing green it: Prin-
ciples and practices. IT Professional, 10:24
33, January 2008.

[9] David A. Patterson and John L. Hennessy.


Computer Organization and Design, Fourth
Edition, The Hardware/Software Interface.
Morgan Kaufmann Publishers Inc., San
Francisco, CA, USA, 2009.

[10] Barry Rountree, David K. Lownenthal,


Bronis R. de Supinski, Martin Schulz, Vin-
cent W. Freeh, and Tyler Bletsch. Adagio:
making dvs practical for complex hpc appli-
cations. In ICS '09: Proceedings of the 23rd
international conference on Supercomput-
ing, pages 460469, New York, NY, USA,
2009. ACM.

[11] Mark Silberstein, Assaf Schuster, Dan


Geiger, Anjul Patney, and John D. Owens.
Ecient computation of sum-products on
gpus through software-managed cache. In
Proceedings of the 22nd annual internation-
al conference on Supercomputing, ICS '08,
pages 309318, New York, NY, USA, 2008.
ACM.

[12] Vasanth Venkatachalam and Michael Franz.


Power reduction techniques for micropro-
cessor systems. ACM Computing Surveys,
237:2005, 2005.

6
Memorias

Arquitectura del
Computador

1
Memorias

Dimensión de las memorias


¿Alguna vez te haz preguntado por qué 1 KB de memoria o disco equivale a
El procesador Intel 8086
1024 B y no 1000 B?
(año 1976) contenía,
aproximadamente,
29.000 transistores. El La unidad más pequeña para almacenar información es el bit, que puede ser
procesador Apple A10 1 o 0. Esta unidad se utiliza para expresar la capacidad de almacenamiento
(año 2016), de los registros: 16 bits, 64 bits.
aproximadamente,
Un byte está compuesto por 8 bits, y también se lo suele denominar octeto.
3.300 millones.
Puede referirse a la capacidad de almacenamiento de registros en bytes: 2
B, 8 B, etcétera.

Es preciso diferenciar la simbología de bits (b) y bytes (B) y no confundirse


en su uso.

El sistema internacional utiliza prefijos para simbolizar los múltiplos de la


unidad básica en diferentes unidades de medición como por ejemplo el
metro o el gramo. En nuestro caso son utilizadas de la misma forma para el
bit o el byte. En la Tabla 1 se observan las equivalencias en metros de 3
valores expresados en megámetros y kilómetros.

Tabla 1: Equivalencia de metros, kilómetros y megámetros

Metros Kilómetros Megámetros


1000000 (1x106) 1000 (1x103) 1
40000000 (4x106) 40000 (4x103) 40
800000 (0,8x106) 800 (0,8x103) 0,8

Fuente: elaboración propia.

Como la información se almacena en la memoria utilizando código binario,


la capacidad se calcula con potencias de base 2. Como un kilo equivale a
1000, el número binario más cercano es 210 = 1024. Es por ello que 1024 B
equivalen a 1 KB.
Para los demás prefijos sucede lo mismo. 1 MB son 1024 KB o 220 = 1.048.576
B.

Ejercicio: calcula la cantidad de bytes de 1 GB, 1 TB y 1 PB.

2
Jerarquía de memorias
La memorias se caracterizan por su velocidad, tamaño y precio. La memoria
ideal debería ser las más rápida, de mayor tamaño y menor precio, pero
lamentablemente es imposible cumplir con todos esos requisitos.

Las memorias más rápidas tienen un costo más alto de fabricación, por lo
que su tamaño no podrá ser muy grande. En cambio, es posible fabricar
memorias de mayor tamaño con menor costo, aunque su velocidad no será
las más rápida.

Debido a esta situación, se define una jerarquía de memoria, y el uso de cada


tipo dependerá del propósito.

Los registros son el nivel más alto de la jerarquía y, por su ubicación, las
memorias de mayor velocidad. Se utilizan para almacenar las operaciones
más frecuentes del procesador. (Stallings, 2005).
Debajo de los registros, se encuentran la caché y la DRAM. Ambas cumplen
la función de almacenar instrucciones y datos intercambiables accedidos por
el procesador. La memoria caché es más rápida que la DRAM y, por lo tanto,
más costosa y de menor tamaño.

En el último nivel de la jerarquía se encuentra la memoria secundaria o


externa. Esta es muchó mas barata y lenta que las anteriores, y su costo,
significativamente menor.

Realiza una búsqueda online de precios de memorias RAM y discos duros.


Calcula y compara el costo por GB.

Memorias RAM
Las memorias RAM (Random Access Memory) son de acceso aleatorio, ya
que un componente de selección habilita una posición e inhabilita al resto.
(Stallings, 2005).
Existen dos tipos de memoria RAM: las estáticas, denominadas SRAM, y las
dinámicas o DRAM. En una memoria estática, la información almacenada
solo puede ser modificada mediante un proceso de escritura. En cambio, en
una memoria dinámica, la información se degrada con el tiempo. Para evitar
que se pierda, debe refrescarse.

Debido a estas características, las DRAM son más lentas, pero de mayor
capacidad.

3
La información dentro de la memoria está organizada en lo que se denomina
palabra. Como las memorias están formadas por filas y columnas, cada
palabra ocupa una fila.

Cada fila está identificada por un número que representa a cada palabra
contenida por esa memoria. Para escribir o leer, se deberá hacer referencia
a este número.

En la Figura 1 se observa un ejemplo de memoria con capacidad para


almacenar 1024 palabras de 8 bits. La dirección de cada palabra se indica
activando o desactivando de A0 a A9 (10 bits).

Las líneas de datos son de D0 a D7 (7 bits).

VCC provee alimentación, y GND, tierra.

WE indica si la operación va a ser de escritura (1) o de lectura (0).

EN indica si el circuito está habilitado (1) o deshabilitado (0).

Figura 1: Memoria estática de 1024 palabras (1KB)

Fuente: Quiroga, 2010, p. 212.

Para leer desde esta memoria, se debe habilitar el chip (EN = 1) y enviar la
dirección desde donde se desea leer. Con WE = 0 se da orden de lectura, y
finalmente la palabra viajará a destino a través de las líneas de datos D0 a
D7.
Para escribir en la memoria, se habilita el chip (EN = 1) y se envía la dirección
donde se almacenarán los datos. Se transfiere la información desde el
dispositivo externo a través de las líneas de datos D0 a D7 y finalmente se
activa la opción de escritura mediate WE = 1.

4
Memoria ROM
En este tipo de memorias puede escribirse solo una vez, de ahí su nombre:
“memoria de solo lectura” (Read Only Memory). No requiere alimentación
para conservar la información, sino que esta permanece inalterable, esté la
computadora prendida o apagada.
Existen memorias ROM que pueden ser programadas por el usuario, las
cuales se denominan PROM (ROM programable), y también memorias ROM
que pueden ser programables y borrables, denominadas EPROM. Si bien
estas últimas pueden borrarse, el proceso es tan lento y complejo que no
pueden cumplir las funciones de la RAM. Por último, las EEPROM pueden
borrarse eléctricamente, por lo que se diferencian de las EPROM por ser más
faciles de eliminar su contenido. (Stallings, 2005).

Errores
Las memorias se ven afectadas por dos tipos de errores: de hard, o
permanentes, y de soft, o transitorios.
Los errores de hard se producen cuando la memoria está físicamente
afectada por el desgaste o defectos de fabricación. En esta situación los bits
quedan siempre en 0, en 1 o conmutan erróneamente.
Los errores de soft se producen por problemas de alimentación o particulas
alfa.
Las memorias pueden detectar y corregir ambos tipos de errores mediante
el uso de códigos. Estos códigos pueden detectar o corregir una cierta
cantidad de bits, y esta medida los caracteriza. (Stallings, 2005).

5
Figura 2: Correción de errores en memoria

Fuente: Stallings, 2005, p. 160.

Para más información sobre códigos detectores y correctores de código,


consulta las páginas 68 a 70 del libro Arquitectura de Computadoras, de P.
Quiroga (2010).

Velocidad del bus de memoria


Las memorias se conectan a un controlador de memoria a través de un bus.
Los buses transfieren bits en paralelo, y el número de bits que pueden ser
transferidos simultáneamente determinará el ancho de banda de la
memoria.
Si un bus tiene un ancho de 64 bits y trabaja a una frecuencia de 200 MHz (o
200 ciclos por segundo), se podrán transferir datos a una velocidad de:
V = 64 bits x 200 MHz = 12.800 bps.

12.800 bps equivalen a 1600 MBps (12.800 / 8).

Así, una memoria que trabaja a 200 MHz será identificada con las siglas
PC1600, que hacen referencia a su capacidad.

Las memorias con tecnología DDR (Double Data Rate) pueden operar al
doble de la frecuencia del bus. Si el bus trabaja con una frecuencia de 100
MHz, la memoria DDR podrá trabajar a 200 MHz. Este tipo de memorias
generalmente informan su frecuencia efectiva (el doble de la real).

Investiga cuáles memorias RAM hay disponibles actualmente en el mercado


y calcula sus velocidades.

6
Referencias
Quiroga, P. (2010). Arquitectura de Computadoras. Buenos Aires:
Alfaomega.

Stallings, W. (2005). Organización y Arquitectura de Computadoras. Madrid:


Pearson Educación.

7
Intel® Optane™: La revolución de la
memoria supersónica despega en 2016
La tecnología de memoria 3D XPoint™ de Intel revolucionará el mundo de la medicina
personalizada y el análisis del Big Data.

La memoria y el almacenamiento son fundamentales para la existencia del mundo


digital. Al funcionar con procesadores, cada producto electrónico, desde un
smartphone a una lavadora, necesita de esta combinación de tecnología para poder
funcionar.

Hasta ahora, la tecnología de la memoria ha permanecido estancada en todos los


innovadores avances que se han logrado en el mundo de la arquitectura informática
durante los últimos 50 años. La última arquitectura de memoria importante que se
presentó fue la NAND, que se remonta a 1989, el mismo año que se concibió la World
Wide Web.

Aunque la NAND es barata y no volátil, su baja velocidad ha exigido tener que


emparejarla con la DRAM, otra tecnología obsoleta presentada un año después de la
Ley de Moore en 1966. La presentación de una nueva arquitectura no solo se ha
retrasado sino que llega en un momento crítico, ya que el mundo digital se está
expandiendo; la memoria de almacenamiento actual es aproximadamente 10.000
veces más lenta que la memoria CPU más rápida. En las tareas informáticas de alto
rendimiento, la memoria actual ocasiona cuellos de botella, así que no hay forma de
que la tecnología pueda gestionar la explosión de datos entrantes. Solo en 2020, se
espera que la cantidad de datos creados aumente por 10 hasta 44 ZB (44 mil millones
de terabytes).

Al colaborar con Micron, Intel ha creado una nueva clase de memoria para solucionar
este problema. Apodada 3D XPoint, la tecnología utiliza una arquitectura de
intersección sin transistor formada en un tablero en 3D. Las celdas de memoria se
sitúan en la intersección de líneas de palabras y líneas de bits, permitiéndoles dirigirse
a ellas individualmente. Como resultado, los datos se pueden escribir y leer en
tamaños pequeños, consiguiendo procesos de lectura/escritura más rápidos y
eficientes.
La tecnología 3D XPoint combina las mejores características de la tecnología existente:
tiene una capacidad 10 veces mayor que la DRAM, es 1.000 veces más rápida que la
tecnología NAND y también mantiene la no volatilidad, todo esto a un bajo coste.
Para dar una idea de su velocidad, un SSD podría llevarle a la luna en 4 días (386.000
km), mientras que la tecnología 3D XPoint le llevaría de ida y vuelta a Marte en el
mismo tiempo (450 millones de km). La resistencia también es otro aspecto positivo de
la arquitectura 3D XPoint. Como es 1.000 veces más resistente que la NAND, las
empresas y los usuarios exigentes ya no tendrán que preocuparse de los ciclos de vida
de lectura/escritura. Si la tecnología 3D XPoint fuera un aceite de motor para coches,
podría conducir 5.000.000 kilómetros sin que hiciera falta cambiarlo.

Brian Krzanich, Presidente de Intel, mostró públicamente en el IDF 2015 los primeros
SSD que utilizan la tecnología 3D XPoint, con un rendimiento de 5 a 7 veces mejor que
los SSD con NAND más rápidos. Krzanich explicó: “Cada vez que entregas a los
desarrolladores algo de 5 a 7 veces mejor, se obtienen inventos e innovaciones
asombrosas”.
Intel ha confirmado que la tecnología 3D XPoint se comercializará a principios de 2016.
Se espera que los SSD presentados bajo la gama de productos Intel Optane estén
presentes en todo, desde sistemas Ultrabook de bajo consumo hasta sistemas de
informática de alto rendimiento. También se diseñará especialmente una nueva línea
de Intel DIMM para plataformas de centros de datos.

Esta tecnología tiene el potencial de revolucionar una gran cantidad de industrias. Los
dispositivos de almacenamiento Optane serán ideales para almacenar y procesar
grandes volúmenes de multimedia potente, junto con videojuegos absorbentes,
virtualización a gran escala en la nube, bases de datos en memoria e informática de
alto rendimiento. Intel espera ver innovaciones en el área del análisis de datos médicos
personalizados y del big data. La memoria también permitirá que las empresas y las
ciudades procesen y analicen grandes volúmenes de datos mientras intentan ser más
inteligentes.

Fuente
Intel. (S.F). IDF2015: Tecnología de memoria 3D XPoint™. Intel® Optane™: La revolución de la
memoria supersónica despega en 2016. Recuperado de:
http://www.intel.es/content/www/es/es/it-managers/non-volatile-memory-idf.html
Placa madre

Arquitectura del
Computador

1
Motherboard o placa madre
La placa madre o motherboard es un hardware fundamental de la
computadora, ya que se encarga, entre otras importantes funciones, de la
interconexión de los demás componentes: procesador, memoria RAM e
interfaces de E/S.

La Figura 1 muestra un diagrama en bloques de los componentes de una


computadora personal moderna y sus buses de interconexión. Todos los
componentes están soldados a la placa madre o sujetos mediante zócalos.

Figura 1: Componentes de una placa madre de PC

Fuente: Englander, 2009, p. 350.

La placa madre es una placa tipo PCB (printed circuit board o placa de circuito
impreso) que posee, generalmente, más de una capa. Cada capa dispone de
interconexiones o buses; para evitar cortocircuitos, se aislan las diferentes
capas entre sí mediante materiales aislantes.

En la Figura 2 se observan una motherboard y la identificación de sus


principales componentes.

2
Figura 2: Componentes de una placa madre de PC

Fuente: Richarte, 2012c, p. 15.

Componentes principales

Chipset

Generalmente, el chipset se divide en dos: northbridge o puente norte y


southbridge o puente sur. La denominación responde a la ubicación física
dentro de la placa madre. (Richarte, 2012).

Estos dispositivos controlan la circulación de información entre los


diferentes dispositivos de una computadora. El northbridge se comunica
directamente con el CPU, la memoria, la interfaz gráfica y el southbridge. Es
un integrado importante que realiza una gran cantidad de cálculos, por lo
que generalmente se los puede ver acompañados de importantes sistemas
de disipación de calor. (Richarte, 2012)

El southbridge interconecta los diferentes buses, por ejemplo, el USB, y


controla la función de acceso directo a memoria (DMA). (Richarte, 2012)

3
Actualmente, algunos diseños de procesadores incluyen las funciones del
northbridge, por lo que este puede no estar presente.

Ambos puentes están interconectados a través de un bus cuya unidad de


transferencia es el mt/s o millones de transferencias por segundo. Al igual
que el resto de los buses, la velocidad va incrementándose a medida que el
tiempo mejora los diseños.

Clock o reloj

Los dispositivos que componen una computadora (procesador, memoria,


buses) deben trabajar coordinados para que la información que
intercambian tenga sentido.

El generador de clock se ubica en la motherboard y utiliza un cristal de cuarzo


que vibra a frecuencia constante. El generador dispone de salidas que se
conectan con los demás componentes, que requieren una frecuencia de
trabajo.

La frecuencia se refiere a la cantidad de ciclos por segundos y su unidad de


medición se denomina Herza o hercio. Las ondas senoidales tienen una
forma de onda que se repite constantemente y se denominan señales
periódicas. Si la onda parte de cero en el eje de coordenadas, cumplirá un
ciclo luego de llegar a su punto máximo, pasar por cero, llegar a su punto
mínimo y volver a cero.

Mientras más ciclos por segundo pueda disponer un procesador, más


instrucciones podrá ejecutar y así mejorará el rendimiento de la
computadora en general.

BIOS

La BIOS (basic inpunt/output system o sistema básico de entrada/salida) es


un firmware y lo primero que se ejecuta cuando se enciende una
computadora. (Richarte, 2012).

El programa almacenado en la BIOS se encarga de realizar pruebas sobre el


hardware para luego dar lugar a un programa de booteo que se encarga de
iniciar el sistema operativo. (Richarte, 2012).

Actualmente (no fue así en las primeras computadoras personales), la BIOS


es accesible y configurable. Las configuraciones de la BIOS se guardan en una
memoria tipo RAM, la cual es alimentada mediante una batería.

4
Zócalos

Un zócal de motherboard evita que los componentes vengan soldados y por


consiguiente no puedan ser remplazados sin la intervención de un técnico
especializado. Por el contrario, la presencia de un zócalo permite
porejemplo que una gran número de modelos de procesador, memoria o
dispositivos de expansión puedan ser instalados según el criterio del usuario.

Este diseño permite, por un lado, que el usuario elija entre una gama de
procesadores soportados por la motherboard según las prestaciones
requeridas o el presupuesto asignado. Además, permite expandir las
funcionalidad de la computadora al agregar dispositivos de expansión, como
por ejemplo, placas de red o editores de video y audio. En cuanto a los
zócalos para memoria, es posible comenzar con un solo módulo y luego
expandir la capacidad de memoria RAM a medida que la demanda se
incrementa.

Dispositivos on-board

Si bien las motherboards traen zócalos para expansión en los que podría, por
ejemplo, instalarse una placa de red, una placa de sonido o una de video, es
común en la actualidad encontrar motherboards con estos dispositivos
integrados, lo que se denomina on-board.

Diseños
Existen diversos modelos de motherboards dependiendo de la función que
tendrá la computadora.

La Figura 3 muestra una motherboard Intel diseñada para servidores de alto


rendimiento. Posee dos zócalos para procesadores y 24 zócalos para
memoria.

5
Figura 3: Motherboard para servidor de alto rendimiento

Fuente: [Imagen sin título sobre placa madre]. (s. f.). Recuperado de https://goo.gl/mVRG5A

Un ejemplo diferente es la motherboard de la Figura 3, utilizada en un


teléfono celular inteligente o smartphone. Además de un procesador y
memoria, esta motherboard tiene circuitos orientados a comunicaciones.

6
Figura 4: Motherboard de un smartphone

Fuente: [Imagen sin título sobre placa de teléfono]. (s. f.). Recuperado de https://goo.gl/emceBg

7
Referencias
Englander, I. (2009). Modern Computer Systems. En I. Englander, The Architecture
of Computer Hardware, System Software and Networking (pp. 342-360). Estados
Unidos: John Wiley and Sons

[Imagen sin título sobre placa de teléfono]. (s. f.). Recuperado de http://cdn.head-
fi.org/9/95/95e95d3d_galaxy-s5-boardshot-front-web.png

[Imagen sin título sobre placa madre]. (s. f.). Recuperado de


http://cdn.cplonline.com.au/media/catalog/product/cache/1/image/9df78eab33
525d08d6e5fb8d27136e95/M/B/MB-INT-S2600WTT_1.jpg

Richarte, J. (2012a). El BIOS y el setup del BIOS. En J. Richarte, Motherboards (pp.


117-124). Buenos Aires, Argentina: Fox Andina.

Richarte, J. (2012b). El Chipset. En J. Richarte, Motherboards (pp. 41-49). Buenos


Aires, Argentina: Fox Andina.

Richarte, J. (2012c). Introducción. En J. Richarte, Motherboards (pp. 14-23). Buenos


Aires, Argentina: Fox Andina.

8
Interfaces

Arquitectura del
Computador

1
Interfaces
Para interconectar los dispositivos externos a un bus, se necesita una
interfaz. Estas interfaces tienen diversas funciones, entre ellas, utilizar algún
tipo de protocolo que permita la comunicación.

Existen dos maneras de implementarlo: interfaz paralela o interfaz serie.

Interfaz paralela
Una interfaz paralela realiza el control entre un dispositivo de E/S y el bus de
forma paralela, es decir, con varias líneas de transmisión.

Algunas interfaces paralelas son:

 IDE-ATA;
 SCSI;
 Centronics;
 IEEE 1284.

Interfaz IDE

La interfaz IDE (integrated drive electronics o electrónica integrada en


dispositivo), como su nombre lo indica, dejaba en manos del disco el control,
por lo que su conexión con el bus era directa a través del cable adecuado.
Inicialmente, soportaba una velocidad de transferencia de 4 Mbps. Esta
velocidad fue quedando obsoleta, por lo que se fueron realizando mejoras a
lo largo del tiempo.

Interfaz SCSI

SCSI (small computer system interface) define un bus, las líneas de


interconexión y un protocolo para interconectar los diferentes dispositivos.
Al igual que IDE, SCSI fue evolucionando para soportar mayores velocidades
como se observa en la Figura 1. El protocolo contiene diferentes comandos
que liberan al CPU de tareas relacionadas con discos, por ejemplo, el
formateo.

2
Figura 1: Evolución de versions SCSI

Fuente: Tropnes, Müller-Friedt, Erkens, y Haustein, 2009, p. 63.

Interfaz Centronics

La interfaz Centronics, o puerto paralelo, permite la transferencia a nivel de


bytes, ya que posee 8 líneas para datos. El conector utilizado se denomina
DB-25; DB proviene de D-sub (D-Subminiature) y el 25 indica la cantidad de
pines.

Usualmente utilizada para conectar impresoras a la computadora, luego de


la aparición y masificación del puerto USB, esta interfaz cayó prácticamente
en desuso.

De las 25 líneas disponibles, 8 eran utilizadas para transferir datos (pines 2


al 7), 8 para tierra (pines 18 a 25) y el resto para control y estado.

Interfaz IEEE 1284

La interfaz IEEE 1284 es la estandarización de la interfaz Centronics.

Interfaces serie
Una interfaz serie posee solo un canal para la transmisión de datos. Algunas
interfaces serie son:

 RS-232;
 Serial ATA;
 USB.

3
Interfaz RS-232 (EIA-232)

Fue diseñada originalmente para interconectar computadoras y periféricos,


y computadoras entre sí durante la década de 1960. Fue muy utilizada para
conectar computadoras a módems e intercambiar datos a largas distancias.
La topología es punto a punto, ya que cada línea se usa específicamente para
transmisión o recepción.

La arquitectura más utilizada consiste en una computadora conectada a un


módem mediante RS-232; una línea teléfonica realiza un enlace hasta otro
módem, el cual se conecta a la computadora remota utilizando también RS-
232. En este esquema, las computadoras se denominan DTE (Digital
Terminal Equipment), y los módems, DCE (Data Communication Equipment).
Cuando se utiliza otra arquitectura sin módem, por ejemplo, para unir dos
computadoras entre sí, el DCE no está presente, y el método se denomina
null módem.

La interfaz RS-232 puede usar conectores de 25 o 9 pines. La función de cada


pin se muestra en la Figura 2. La velocidad de transmisión de esta interfaz es
de 20 Kbps, la cual ha quedado obsoleta para las necesidades actuales;
debido a ello, la interfaz RS-232 es muy dificil de hayar en motherboard
actuales. Sin embargo, existen en el mercado adaptadores de USB a RS232 o
placas PCI con interfaces serie y paralela para permitir la comunicación con
dispositivos antiguos.

4
Figura 2: Asignación de pines para conectores de 25 y 9

Fuente: James, 2000, p. 297.

Interfaz SATA

La interfaz Serial ATA surgió para mejorar las prestaciones de ATA paralelo.
La versión 1.0 de SATA trabaja con una frecuencia de 1500 MHz y logra
transferencias de hasta 1,5 Gbps; este valor supera a los 133 MBps de ATA
UltraDMA-133.
Otra ventaja de SATA es la simplificación de los cables y conectores; al ser
una interfaz serie, se reemplazaron los cables de 80 hilos de ATA paralelo
por un cable serie.
Debido al aumento de las necesidades de velocidad, la interfaz SATA II
mejoró las prestaciones duplicando el ancho de banda a 3000 MHz y las
transferencias hasta 3 Gbps. El diseño permite la compatibilidad con SATA I
y agrega la posibilidad de conectarse con dispositivos ópticos.

SATA III vuelve a duplicar el ancho de banda a 6000 MHz, logra transferencias
de hasta 6 Gbps y mantiene la compatibilidad con las dos versiones
anteriores.

5
Interfaz SAS

La interfaz SAS o serial attached SCSI remplaza a SCSI paralelo y mantiene


los mismos comandos que el estándar SCSI. Al igual que las demás interfaces,
ha ido evolucionando a lo largo del tiempo. La versión actual, SAS-3, logra
transferencias de hasta 12 Gbps. Esta tecnología es utilizada en arreglos de
discos (storage arrays).

Interfaz USB

USB (universal serial bus) es un bus serie de alta velocidad que utiliza
topología estrella extendida, como se observa en la Figura 3. La raíz de la
topología es el host en el que se encuentra el controlador USB. A partir de
allí, los dispositivos o HUB se conectan al HUB raíz extendiendo la estrella. El
límite de HUB externos es de 5, y el de dispositivos, 127. Como es un bus
compartido, es posible utilizar más de una controladora USB en la
computadora para evitar la congestión. (Axelson, 2009).

Figura 3: Topología USB

Fuente: Axelson, 2009, p. 16.

El USB ha evolucionado a lo largo del tiempo desde la versión 1.0 a la actual


3.0 e incrementado de manera contundente la velocidad de transferencia.
La arquitectura de USB 3.0 soporta las 4 velocidades disponibles: low, full,
high speed y super speed. Para que sea posible, el HUB contiene, en realidad,
dos HUB: uno 2.0, que soporta low, full y high speed, y otro super speed.

6
El USB tiene la particularidad de ser capaz de alimentar a los dispositivos que
se conectan al bus. La versión 2.0 entrega 500 mA, mientras que la 3.0, 900
mA.

7
Referencias
Axelson, J. (2009). USB Basics. En J. Axelson, USB Complete (pp. 1-19). Estados
Unidos: Lakeview Research.

James, K. (2000). Serial Communications, Paralell Buses. En K. James, PC Interfacing


and Data Adquisition (pp. 251-308). Newnes.

Tropens, U., Müller-Friedt, R., Erkens, R., y Haustein, N. (2009). I/O Techniques. En
U. Tropens, R. Müller-Friedt, R. Erkens, y N. Haustein, Storage Networks Explained
(pp. 62-65). Alemania: Dpunk.verlag.

8
Científicos desarrollan un dispositivo USB
que puede realizar test de HIV

La unidad “lee” las muestras de sangre y crea una señal que puede ser leída utilizando
una computadora o un equipo portátil

Un equipo de científicos del Imperial College de Londres se unió a la firma de


tecnología médica DNA Electronics para desarrollar un dispositivo USB capaz de
realizar pruebas de HIV. La unidad “lee” las muestras de sangre y crea una señal que
puede ser leída utilizando una computadora o un equipo portátil.

Las unidades de prueba desechables podrían utilizarse para ayudar a los pacientes con
HIV a controlar su tratamiento, como así también para mejorar la manera en que los
médicos tratan el virus en lugares remotos.

El monitoreo de la cantidad de virus que está presente en una muestra de sangre


puede permitir saber si un paciente deja de tomar sus medicamentos o si el curso
actual de acción ha dejado de funcionar. Los investigadores también esperan que la
tecnología se pueda utilizar para probar la hepatitis y otros virus. DNA Electronics ya
está utilizando esta configuración para desarrollar un método de prueba para la sepsis
y la resistencia a los antibióticos.
La memoria USB no sólo es muy precisa, sino que puede ofrecer resultados de niveles
de HIV en menos de 30 minutos. De hecho, el tiempo medio de espera para los
resultados fue de poco más de 20 minutos durante la fase de investigación. Eso es una
gran mejora con respecto al tiempo de espera actual de unos tres días, principalmente
debido al hecho de que una muestra de sangre tiene que ser enviada a un laboratorio
para su análisis. Como es de esperar, esos tipos de laboratorios no existen en ciertas
partes del mundo donde las tasas de HIV son más altas.

Impulsado por un chip de teléfono móvil, el gadget sólo necesita una pequeña cantidad
de sangre para realizar su análisis. Cuando se detecta el virus VIH en la muestra de
sangre, la memoria USB genera un cambio en la acidez que el chip transforma en una
señal eléctrica. Dicha señal puede leerse en una computadora u otro dispositivo
electrónico. Durante la última ronda de ensayos, se probaron casi 1.000 muestras con
95 por ciento de precisión.

Fuente
RedUSERS. (10 de noviembre de 2016). Científicos desarrollan un dispositivo USB que puede
realizar tests de HIV. Recuperado de: http://www.redusers.com/noticias/cientificos-
desarrollan-dispositivo-usb-puede-realizar-tests-hiv/
Buses

Arquitectura del
Computador

1
Buses
El procesador, la memoria y los dispositivos de entrada o salida de una
Un bus es un camino computadora deben comunicarse entre sí para cumplir sus funciones.
compartido por varios
dispositivos y utilizado
El procesador se comunica con la memoria para obtener datos e
para el intercambio de instrucciones; luego de procesarlos, los vuelve a colocar en memoria. El
información entre ellos. procesador también puede obtener datos de un dispositivo de E/S,
procesarlos y devolverlos. El acceso directo a memoria (DMA) se da cuando
un dispositivo de E/S interactúa directamente con la memoria.

Un bus es una interconexión entre dispositivos. En las computadoras no hay


caminos dedicados, sino que el mismo bus es compartido por más de un
dispositivo. Para evitar que la información se destruya, se habilita un solo
dispositivo para que utilice el bus en un determinado momento.

En la Figura 1 se observa un esquema de la interconexión a través de buses


en una computadora.

Los buses se clasifican en tres categorías: (Stallings, 2013).

 bus de datos;
 bus de control;
 bus de dirección.

Figura 1: Buses de una computadora

Fuente: Stallings, 2005, p. 77.

Para todos los tipos de buses, se define su ancho. El ancho de un bus es la cantidad
de líneas paralelas que lo componen. Por ejemplo, un bus de 32 bits tiene 32 líneas
paralelas capaces de intercambiar información. Cada línea puede transmitir un bit
a la vez, por lo que, mientras más ancho sea el bus, más bits se podrán intercambiar
de forma paralela. (Stallings, 2005).

El bus de datos es utilizado exclusivamente para la transferencia de datos entre


dispositivos.

2
El bus de dirección sirve para identificar en qué región de cada dispositivo se ubican
los datos. Antes de utilizar el bus de datos, se debe usar el bus de dirección para
indicarle al dispositivo dónde debe buscar los datos.

El bus de control se utiliza para arbitrar el uso de los buses de datos y de dirección.

Físicamente, los buses son líneas conductoras grabadas en la motherboard. Los


componentes del sistema (microprocesador, memoria, E/S) tienen zócalos para
integrarse a dichos buses.

Jerarquía de buses

Si se utilizara un solo bus para todo el sistema, el requerimiento actual de


todos los dispositivos provocaría congestión y retardos. Esto se debe a que
muchos dispositivos desean usar el bus al mismo tiempo y al momento de
tomar control, debido a la cantidad de información que intercambian en la
actualidad, su uso sería intenso y de gran duración. Para evitar este
inconveniente, más de un bus está presente en el diseño de una
computadora, y su organización es jerárquica.

Un diseño clásico se observa en la Figura 2. Un bus del sistema interconecta


directamente a la memoria principal, la memoria caché y una interfaz de
interconección con el bus de expansión. La caché, un controlador local de
E/S y el procesador se conectan a través de un bus local. Finalmente, los
dispositivos de expansión (placas de red, SCSI, puerto serie o módem) se
interconectan mediante un bus de expansión.

Figura 2: Jerarquía de buses

Fuente: Stallings, 2005, p. 81.

3
Otro diseño utiliza un bus adicional, denominado bus de alta velocidad, para
suplir las necesidades actuales de ciertos dispositivos, como placas de video
o de red de alta velocidad.

Arbitraje de bus
El arbitraje de un bus consiste en determinar qué dispositivo puede utilizarlo
en un determinado momento para evitar el solapamiento de datos.

Existe dos métodos posibles para el arbitraje: centralizado y distribuido.


En un método centralizado, existe un dispositivo encargado de controlar a
todos los demás; en cambio, en un aribtraje distribuido, todos los
dispositivos conectados a un bus deben controlar su acceso.

Una vez que se designa un dispositivo para que utilice el bus con cualquiera
de los dos métodos, este puede hacer uso del bus para escribir o leer datos.
El dispositivo que origina la petición se denomina maestro, y el que la recibe,
esclavo.

Buses comerciales
Los buses para conectar dispositivos externos han ido evolucionando a lo
largo del tiempo. El bus ISA (industry standard architecture) fue muy popular
en la década de 1980. El ancho de este bus era de 8 o 16 bits y soportaba
una velocidad de transferencia de aproximadamente 6 Mbps.

El bus PCI, muy popular en la década de 1990, mejoró las prestaciones de


ISA utilizando un ancho de 32 o 64 bits y logró velocidades de hasta 4,3 Gbps.
En esta misma década, el bus AGP fue concebido para interconexión de
placas de video. Con un ancho de 32 bits, logra transferencias de hasta 17
Gbps.

Actualmente, dos buses son muy populares: PCI Express e Infiniband. El


primero tiene un ancho de 1 a 32 bits y logra velocidades de hasta 31,5 Gbps.
Infiniband es un bus serie de muy alta velocidad: hasta 96 Gbps.

4
Figura 3: Comparación entre buses de expansión

Fuente: Richarte, 2012, p. 59.

PCI Express
PCI-E, a diferencia del bus anterior PCI, utiliza enlaces serie. Las x de la Figura
3 hacen referencia a la cantidad de carriles serie disponibles.

El chipset es la raíz de la arquitectura e intrerconecta al procesador, la


memoria y un switch de interconexión. Este switch maneja los diferentes
flujos provenientes de diversos dispositivos PCI-E, como por ejemplo, placas
de video o de red. PCI Express permite que dispositivos PCI puedan ser
utilizados y así brinda compatibilidad. La Figura 4 muestra el diagrama lógico
de PCI-E.

5
Figura 4: Topología PCI-E

Fuente: Stallings, 2013, p. 99.

Las interacciones PCI-E se dan utilizando protocolos y diferentes niveles o


capas. Se definen 3 niveles o capas.
 Capa física: cables y circuitos que hacen posible el movimiento de señales.
 Capa de enlace de datos: brinda control de flujo y les da confiabilidad a
las transferencias.
 Capa de transacción: implementa el uso de paquetes.

Para conocer más sobre el bus PCI-E, lee las páginas 98 a 108 de Computer
Organization and Architecture, de W. Stallings (2013).

Infiniband

Infiniband puede reemplazar al bus PCI mediante la utilización de una red


serie; cuando se lo utiliza para conectar dispositivos externos, su
competencia son Ethernet y Fibre Channel. Su uso como bus interno
actualmente se limita a computadora de alto rendimiento.

En la Figura 5, se utiliza Infiniband tanto como bus interno como externo.

6
Figura 5: Topología Infiniband

Fuente: Erkens y Haustein, 2009, p. 118.

7
Referencias
Stallings, W. (2013). A Top-Level View of Computer Function and Interconnections.
En W. Stallings, Computer Organization and Architecture (pp. 98-108). New Jersey:
Pearson Education.

Quiroga, P. (2010). Transferencia de información. En P. Quiroga, Arquitectura de


Computadoras (pp. 299-316). Buenos Aires: Alfaomega.

Herkens, R., y Haustein, N. (2009). I/O Techniques. En R. Herkens, y N. Haustein,


Storage Networks Explained (pp. 117-122). Heidelberg: Dpunkt.Verlag.

8
Entrada/salida

Arquitectura del
Computador

1
Entrada/salida
Los módulos de entrada/salida son tan importantes como la memoria o el
procesador de una computadora. Sin ellos, las personas no podrían
interactuar y la información no podría almacenarse o copiarse de un lugar a
otro.

Estos dispositivos no usan el bus del sistema, ya que sus velocidades son
menores y diversas. Se utiliza entonces un módulo de E/S para conectar
estos dispositivos, los cuales reciben el nombre de periféricos.

Dispositivos externos
Estos dispositivos permiten el intercambio de datos entre la computadora y
el exterior y se clasifican en:

 de interacción con humanos;


 de interacción con máquinas;
 de comunicación.

Las computadoras interactúan con humanos mediante pantallas o


impresoras. Discos y sensores son ejemplos de interacciones entre
máquinas. Finalmente, los dispositivos de comunicación permiten ambos
tipos de interacciones, por ejemplo, enviar información a un monitor remoto
que es observado por una persona.

En la Figura 1 se observa un esquema de un dispositivo externo. Existe una


lógica de control que se conecta con el módulo de E/S de la computadora y
determina, con base en lo que le indica el módulo de E/S, qué operación
debe realizar, por ejemplo, lectura o escritura. Los datos que llegan desde el
módulo de E/S pasan por un buffer, y el transductor convierte las señales
eléctricas en otro tipo de señales. (Stallings, 2005).

Un ejemplo de períferico de interacción con humanos es el teclado. Cuando


el usuario presiona una tecla, se cierra un circuito, y es el transductor el
encargado de convertir la señal en código ASCII, por ejemplo. El código luego
es transmitido al módulo de E/S de la computadora. Este dispositivo solo
permite la entrada de datos.

Un controlador de disco permite tanto la entrada como la salida de datos.


En este caso, el transductor convierte señales eléctricas en patrones
magnéticos y viceversa.

2
Figura 1: Dispositivo externo

Fuente: Stallings, 2005, p. 210.

Módulos de E/S
Un módulo de E/S debe realizar las siguientes funciones: (Stallings 2005).

 control y temporización;
 comunicarse con el procesador;
 comunicarse con los dispositivos;
 almacenar datos temporalmente;
 detectar errores.

El control y la temporización sirven para poder coordinar la comunicación


entre los dispositivos externos y los recursos internos de la computadora. A
modo de ejemplo, un procesador que quiere obtener datos desde un
dispositivo de E/S primero debe consultar si este está disponible. Si el
módulo de E/S le responde afirmativamente, entonces el procesador le pide
al módulo de E/S que le envíe la información. (Stallings, 2005).

El almacenamiento temporal de datos tiene como objetivo arbitrar entre la


gran diferencia de velocidad que manejan los dispositivos internos
(procesador y memoria) y los externos (teclado, impresora, etc.). Si no
existiera un buffer, los dispositivos internos saturarían a los externos; en el
caso opuesto, cuando un dispositivo externo quisiera enviar información a
los internos, se perdería tiempo valioso.

3
Estructura del módulo

Un módulo de E/S se conecta a través del bus del sistema a las líneas de
control, datos y dirección. Como puede controlar uno o más dispositivos
externos, para cada uno de ellos tendrá una lógica con una interfaz en la cual
se realice el control, se obtenga el estado y se transfieran los datos.
(Stallings, 2005).

El módulo de E/S permite ocultarle al procesador las características propias


de cada dispositivo, para que solo se limite a escribir o leer información,
aunque también es posible que directamente los controle. (Stallings, 2005).

En la Figura 2 se observa el diagrama en bloques de un módulo de E/S.

Figura 2: Estructura del módulo de E/S

Fuente: Stallings, 2005, p. 216.

Operaciones de entrada/salida
La forma de intercambiar datos entre el procesador, la memoria y el módulo
de E/S puede ocurrir de tres maneras:

 E/S programada;
 E/S con interrupciones;
 DMA (acceso directo a memoria).

4
Se denomina E/S programada cuando el procesador y el módulo de E/S
intercambian datos. Es el procesador el encargado de controlar al módulo y
de solicitar lectura o escritura. Esto significa que, cuando envía una orden al
módulo, debe controlar su estado sin realizar otra tarea paralelamente.
Estas órdenes pueden ser de control, para realizar pruebas sobre el
periférico y para conocer su estado, realizar solicitudes de lectura o de
escritura.

No poder realizar tareas implica, generalmente, un gran desperdicio de


recursos, ya que los dispositivos de E/S son más lentos que el procesador.

La segunda técnica consiste en trabajar con interrupciones. Si bien el


procesador sigue siendo el encargado de controlar al módulo de E/S, una vez
que envía una orden, puede trabajar en otras tareas hasta que el módulo de
E/S esté listo y le envíe un pedido de interrupción.

La interrupción es solicitada por el módulo de E/S cuando está listo para


realizar la tarea solicitada por el procesador. Este último recibe la
interrupción y decide cuándo permite que el módulo interactúe con él.

Cuando recibe un pedido de interrupción, el procesador guarda el estado del


program counter y los registros del programa en curso para poder procesar
la actual interrupción. Si la operación es de lectura, almacena los datos del
dispositivo en memoria y luego continúa con el programa que estaba
anteriormente en ejecución. (Stalling, 2005).
Para poder procesar los múltiples pedidos de interrupción que llegan de
diversos dispositivos, se utilizan 4 técnicas.

 Varias líneas de interrupción. Es la idea más simple, según la cual varias


líneas pueden procesar varias interrupciones. No es adecuada por su
diseño.
 Consulta de software. Se detecta una interrupción y luego se consulta qué
dispositivo la solicitó. Esto consume tiempo valioso del procesador.
 Conexión en cadena. Existe una línea de identificación, y el procesador la
utiliza para saber qué dispositivo la solicitó.
 Arbitraje de bus. Antes de solicitar la interrupción, se debe tener permiso
para usar el bus, por lo que el dispositivo ya está identificado.

El tercer y último método consiste en un acceso directo a memoria (direct


memory access o DMA). Este método evita las dos grandes desventajas de
la E/S programada y la E/S con interrupciones: procesador ocioso y pérdida
de velocidad de transferencia.

5
Este método utiliza un módulo, que se observa en la Figura 3. Este toma el
control como si fuera el procesador o lo fuerza para que suspenda su
funcionamiento.

Figura 3: Módulo DMA

Fuente: Stallings, 2005, p. 230.

El procesador interactúa con el módulo DMA, para liberarse para otras


tareas, enviándole solicitudes a través de una línea de control, dirección del
dispositivo de E/S y de memoria a través de una línea de datos. Una vez que
la información fue enviada al módulo DMA, el procesador puede realizar
otras tareas, mientras el módulo se encarga de acceder a la memoria y al
dispositivo.

Si bien el método es más eficiente que los anteriores, la detención del


procesador consume un ciclo del procesador. En la Figura 4 se observan los
puntos en los que podrían haber rupturas para DMA, en comparación con
los puntos de ruptura para interrupción.

6
Figura 4: Puntos de ruptura para DMA e interrupción

Fuente: Stallings, 2005, p. 231.

7
Referencias
Stallings, W. (2005). Entrada/Salida. En W. Stallings, Organización y Arquitectura de
computadores (pp. 208-247). Madrid, España: Pearson Educación.

8
CPU

Arquitectura del
Computador

1
Componentes funcionales de
un microprocesador
¿Cuál es la función de un procesador? Procesar datos que recibe para luego
entregarlos. ¿Cómo lo hace? Primero, capta la instrucción de alguna de las
memorias (registro, caché o RAM), luego, interpreta esa instrucción. El
tercer paso consiste en recibir los datos que deben ser procesados. Cuando
posee los datos, realiza las operaciones aritméticas o lógicas y finalmente
escribe los datos procesados en la memoria o en las unidades de
entrada/salida. Todas las transferencias se realizan a través de buses.

En la siguiente figura se observa un diagrama simplificado de un procesador


y sus buses. Los componentes de un procesador son los siguientes:

 ALU (unidad aritmético-lógica);


 registros;
 unidad de control.

En la ALU se realizan las operaciones aritméticas y lógicas, mientras que la


unidad de control inspecciona cómo se transfieren los datos desde y hacia el
procesador. Los registros funcionan como una memoria temporal.

Figura 1: Diagrama simplificado de procesador y buses

Fuente: Stallings, 2005a, p. 439.

2
Registros
Los registros utilizados en el procesador pueden ser visibles por el usuario o
destinados a control y a estado. Los visibles pueden ser referenciados utilizando un
lenguaje de máquina o assembler, es decir, el programador puede mejorar la
eficiencia de su programa al utilizar de forma inteligente los registros. A su vez, los
registros visibles por el usuario se clasifican como sigue: (Stallings, 2005).

 Registros de uso general: como su nombre lo indica, pueden ser


asignados a diversas funciones.
 Registros de datos: se usan solo para contención de datos, y no es posible
utilizarlos para realizar cálculos.
 Registros de direcciones: se los aplica para almacenar direcciones de
memoria.
 Registros de código de condición: son flags resultantes de alguna
operación. Por ejemplo, indican que el resultado de una suma es
negativo.

Los registros de control y de estado, en su mayoría, son invisibles para el


usuario. Para ejecutar instrucciones, existen cuatro registros básicos.
(Stallings, 2005).

 Contador de programa (PC): guarda la dirección de la instrucción.


 Registro de instrucción (IR): guarda la última instrucción.
 Registro de dirección de memoria (MAR): guarda una posición de
memoria.
 Registro de intercambio de memoria (MBR): guarda la palabra de datos
por escribir o la recientemente leída.

El objetivo de todo procesador es obtener datos desde la memoria para


luego procesarlos en la ALU. Estos registros se utilizan con ese fin. La ALU
puede tener acceso directo a la MBR y a los registros visibles. Otro método
consiste en utilizar registros intermedios. En definitiva, al diseño lo
determina cada fabricante de procesadores con base en su objetivo.

Ciclo de instrucción

Un ciclo de instrucción está compuesto por tres subciclos: captación (llevar


la siguiente instrucción desde la memoria hasta el procesador), ejecución
(interpretar el código y realizar la operación indicada) y, finalmente,
interrupción (guarda el estado del proceso actual y atiende la interrupción).
(Stallings, 2005).

3
Un cuarto subciclo denominado indirecto se activa cuando, luego de captada
la instrucción, se determina que requiere direccionamiento indirecto y
accesos a memoria adicionales.

Figura 2: Ciclo de instrucción

Fuente: Stallings, 2005b, p. 447.

Flujo de datos de captación e indirecto

El flujo de datos no es un estándar, sino que depende del diseño de cada


procesador. A modo de ejemplo, considera un procesador diseñado con
registros MBR, MAR, IR y PC.

Las Figuras 3 y 4 muestran los subciclos de captación e indirecto.

Durante el subciclo de captación, se debe llevar una instrucción desde la


memoria hasta el registro IR. La secuencia comienza con el PC que contiene
la dirección de la instrucción a captar: se copia esa información al registro
MAR colocándola en el bus de direcciones. Luego, la unidad de control es la
encargada de solicitar la información a la memoria, que interactúa a través
de los buses de control, de datos y de dirección. De esta forma, se obtiene
la información captada y es colocada a través del bus de datos en el MBR,
que la copia al IR. El ciclo finaliza cuando el PC se incrementa en uno y está
listo para dar comienzo al nuevo ciclo que traerá una nueva instrucción.

4
Figura 3: Subciclo de captación

Fuente: Stallings, 2005b, p. 448.

El ciclo indirecto se activa cuando, luego de examinada la información


contenida en el IR, se determina que algún campo del operando va a utilizar
direccionamiento indirecto. Se transfieren, desde el MBR hasta el NAR, los
N bits que están más a la derecha, los cuales contienen la dirección de
referencia.
Una vez terminada la transferencia, la unidad de control solicita una lectura
a memoria para transferir la dirección al MBR.

Figura 4: Subciclo indirecto

Fuente: Stallings, 2005b, p. 448.

El ciclo de ejecución depende de las instrucciones y puede realizar lecturas


o escrituras tanto a memoria como a dispositovs de entrada/salida.

Finalmente, el subsiclo de interrupción se utiliza para guardar el contenido


del PC y permitir que el procesador reanude su actividad luego de la
interrupción. Se copia el contenido del PC hacia el MBR para que sea escrito
en memoria. La unidad de control se encarga de cargar una dirección de
memoria en el MAR.

5
Figura 4: Subciclo de interrupción

Fuente: Stallings, 2005b, p. 449.

ALU
La unidad aritmético-lógica es donde realmente se realizan las operaciones
de la computadora. Estas son sumas, restas, multiplicaciones y divisiones de
números binarios. Los números pueden representarse mediante números
enteros o con coma flotante, dependiendo el diseño.

La ALU utiliza registros para leer datos y almacenar sus resultados. Puede
utilizar flags para indicar ciertos resultados de operaciones. La unidad de
control, como su nombre lo indica, se encarga de gestionar todo lo que
sucede en ela ALU.

Representación de enteros

El problema de utilizar números binarios es que se requiere indicarle a la


memoria si el número es positivo o negativo y dónde se encuentra su
separador de decimales (coma en el sistema internacional, punto en el
anglosajón). La representación en complemento a 2 resuelve este
inconveniente. El bit más significativo se utiliza para diferenciar entre un
número positivo y otro negativo. (Stallings, 2005).

Para obtener el complemento a 2 de un número negativo, primero se


obtiene su complemento a 1, es decir, se invierten todos los bits. La
operación depende de la cantidad de bits usada para representar el número.
(Stallings, 2005).

Ejemplo: 510, en binario, es 101. Su complemento a 1 (-510) es 010.

Para obtener el complement a 2, se suma 1 en binario al complemento a 1.

6
Siguiendo el ejemplo anterior, -5 será 011.

Si se utilizan 8 bits para representar el mismo número:

510 = 00000101,
complemento a 1: -510 = 11111010,
complemento a 2: 11111010 + 1 = 11111011.

7
Referencias
Stallings, W. (2005a). Aritmética del Computador. En W. Stallings, Organización y
Arquitectura de Computadores (pp. 301-309). Madrid: Pearson Educación.

Stallings, W. (2005b). Estructura y funcionamiento del procesador. En W. Stallings,


Organización y Arquitectura de Computadores (pp. 437-449). Madrid: Pearson
Educación.

8
Unidad de
control

Arquitectura del
Computador

1
Unidad de control
Microoperaciones
Las microoperaciones son los pasos que se realizan en lo subciclos
pertenecientes a los ciclos de captación, de ejecución, de interrupción e
indirecto. Se las denomina anteponiendo el prefijo micro-, porque son
operaciones sencillas y pequeñas.

En la Figura 1 se observa cómo la ejecución de un programa se desglosa en


ciclos, subciclos y microoperaciones.

Figura 1: Ejecución de un programa

Fuente: Stallings, 2005a, p. 601.

Los procesadores basan su funcionamiento en la ejecución de


microinstrucciones, y es la unidad de control la que se encarga de que se siga
la secuencia adecuada: después de un ciclo indirecto, siempre hay un ciclo
de ejecución; luego de un ciclo de interrupción, siempre deberá haber uno
de captación; lo que siga luego de ejecución y captación dependerá del
estado del sistema.

A modo de ejemplo, la Figura 2 muestra los tres pasos necesarios durante el


ciclo de captación.

2
Figura 2: Microoperaciones en ciclo de captación

Fuente: Stallings, 2005a, p. 602.

El comienzo contiene la dirección de la siguiente instrucción almacenada en


el registro contador de programa (PC). El primer paso será, entonces, llevar
la dirección desde el registro PC hacia el registro MAR. Una vez que el
registro MAR contiene la dirección, en el paso 2, la unidad de control hace
que que los datos sean leídos en la memoria y copiados al registro MBR. El
tercer y último paso consiste en mover la información desde el MBR hacia el
IR. Además, se debe incrementar el contador de programa en 1.

La captación tiene 4 microinstrucciones y 3 pasos. Debido a que es posible


incrementar el PC en 1 mientras se copian los datos del MBR hacia el IR, se
utiliza un solo paso, aunque se realicen dos microinstrucciones.

Para conocer los pasos y microinstrucciones de los ciclos de ejecución,


interrupción e indirecto, consulta las páginas 600 a 607 de Organización y
Arquitectura de Computadores, de W. Stallings (2005).

Unidad de control

Una unidad de control debe cumplir con tres requisitos funcionales que se
describen a continuación.

 Definir los elementos básicos del ordenador. Estos son la ALU, los
registros, los buses y la unidad de control.
 Describir las microoperaciones que se ejecutan. Estas pueden agruparse
en cuatro categorías: (Stallings, 2005).
o transferencia de datos entre registros;

3
transferencia de datos desde un registro hacia una interfaz externa;
o
transferencia de datos desde una interfaz externa hacia un registro;
o
Realización de operaciones aritmético-lógicas con registros.
o
 Determinar qué funciones debe realizar la unidad de control para que se
puedan ejecutar las microoperaciones.

La unidad de control utiliza señales para cumplir con sus dos funciones.
(Stallings, 2005)

 Secuenciamiento: consiste en lograr que el procesador avance a través


de secuencias de microoperaciones basadas en el programa que está en
ejecución.
 Ejecución: hace que se ejecuten las microoperaciones.

Para utilizar las señales de control, la UC dispone de entradas para detectar


el estado del sistema y de salidas para controlarlo. (Stallings, 2005).

Figura 2: Modelo de unidad de control

Fuente: Stallings, 2005a, p. 609.

Para este modelo, el reloj define los ciclos de trabajo. Un reloj o clock trabaja
a una frecuencia constante, por lo que cada microoperación será realizada
exáctamente en un ciclo. El registro de instrucción tiene almacenado el
código de la operación en curso. Los indicadores sirven para conocer el
resultado de las operaciones que realiza la ALU y el estado actual del
procesador.
Las señales de control internas del procesador permiten transferir datos
entre registros y realizar operaciones en la ALU.
Las señales de control hacia el bus de control permiten controlar la memoria
y las unidades de entrada/salida.

4
Las señales de control se conectan a compuertas lógicas que, dependiendo
de que algunas de sus entradas sean activadas o no, realizarán o no las
operaciones.

Diseño de la unidad de control


Existen dos categorías para la implementación de la ALU: implementaciones
cableadas e implementaciones microprogramadas.
Una UC cableada es un circuito combinacional que transforma señales de
entrada en señales de salida, en este caso, las señales de control.

Estas entradas son:

 registro de instrucción;
 reloj;
 indicadores;
 señales de control de bus.

Para el registro de instrucción, se utiliza un decodificador de n entradas y sn


salidas. Esto permite tener una combinación de código diferente para cada
instrucción, la cual activa una salida diferente.
El reloj genera diferentes entradas, ya que, durante un único ciclo de
instrucción, la unidad de control emite señales diferentes. (Stallings, 2005).

En la Figura 3 se observa una unidad de control con el detalle de su registro


de instrucción y reloj.

Figura 3: Unidad de control cableada

Fuente: Stallings, 2005a, p. 620.

La lógica de funcionamiento de una unidad de control cableada consiste en


realizar opreaciones booleanas que definen el comportamiento propio y el

5
del procesador. De otro modo, las ecuaciones de un procesador serían
demasiado complejas, por lo que el inconveniente se resuelve con la
microprogramación.

La lógica de funcionamiento de una unidad de control microprogramada se


basa en un microprograma: una secuencia de instrucciones escrita en
lenguaje de microprogramación. (Stallings, 2005).

Figura 3: Unidad de control microprogramada

Fuente: Stallings, 2005a, p. 620.

Cada línea de un código microprogramado describe un conjunto de


microoperaciones simultáneas que se definen como microinstrucciones. El
denominado firmware o microprograma es la secuencia de instrucciones,
que se condisera un punto intermedio entre hardware y software.

Cada microoperación puede representarse por un patrón binario de unos y


ceros distintos, activando o desactivando diferentes líneas de control.

Figura 4: Formato de microinstrucción horizontal

Fuente: Stallings, 2005a, p. 626.

6
En la Figura 4 se observa un ejemplo de microinstrucción denominada
horizontal. La secuencia de bits se divide en campos: señales de control
internas del procesador, del bus del sistemas, de condición de salto y la
dirección de microinstrucción.
Para obtener más información sobre unidad de control microprogramada,
consulta las páginas 623 a 663 de Organización y Arquitectura de
Computadores, de W. Stallings (2005).

7
Referencias
Stallings, W. (2005a). Funcionamiento de la unidad de control. En W. Stallings,
Organización y Arquitectura de computadores (pp. 599-663). Madrid: Pearson
Educación.

Stallings, W. (2005b). Control – Microprogramado. En W. Stallings, Organización y


Arquitectura de computadores. (pp. 623-663). Madrid: Pearson Education.

8
Memoria
caché

Arquitectura del
Computador

1
Memoria caché

Objetivo
Teniendo en cuenta el concepto de jerarquía de memoria al que nos
referimos con anterioridad, la memoria caché se ubica en un punto
intermedio entre los registros localizados en el procesador (rápidos, de
tamaño reducido y costosos) y la memoria principal RAM (no tan rápida, de
tamaño considerable y menos costosa).

El objetivo de una memoria caché es presentarle al procesador datos


necesarios para realizar las operaciones aritméticas y lógicas, en un tiempo
menor al necesario si se utilizara la memoria RAM.

La primera opción del procesador cuando necesita leer datos es la caché. En


caso afirmativo, se le entrega la palabra, pero, en caso contrario, se copia un
bloque desde la memoria principal. Este contiene varias palabras, a pesar de
que solo puede ser necesaria una. (Stallings, 2005).

En la Figura 1 se observa la ubicación de la memoria caché y su interacción


con el resto de los componentes.

Cuando la palabra requerida por el procesador se encuentra en caché (cache


hit), los buffers de datos y direcciones no son necesarios, por lo que se
deshabilitan. La palabra viaja directamente desde la caché hacia el
procesador.
Cuando la palabra requerida no está en la caché (cache miss), la dirección de
memoria se coloca en el bus del sistema, luego se copia el bloque de datos
en el procesador y también en la caché, utilizando el buffer de datos. Esto
permite que, si se vuelve a solicitar la misma palabra, esta ya se encuentre
en la caché. De este modo, se acelera el procesamiento, y el tiempo de
trabajo es menor.

2
Figura 1: Memoria caché

Fuente: Stallings, 2005, p. 114.

Diseño de memoria caché


Para diseñar una memoria, se deben tener en cuenta los siguientes
elementos:

 tamaño;
 función de correspondencia;
 algoritmo de sustitución;
 política de escritura;
 tamaño de línea;
 numero de cachés.

Como no existe un solo tipo de computadora, el diseño es variable y


dependerá del objetivo de la máquina.

Tamaño

El tamaño de una memoria caché es una relación de compromiso entre


velocidad y costo. Si la memoria es muy pequeña, su costo será bajo, pero la
ventaja de su velocidad, en comparación con la memoria RAM, será
reducida. En cambio, si la memoria es grande, su costo será alto, aunque
habrá muchas ventajas en cuanto a la velocidad de acceso.

3
Además, por la forma de fabricación, mientras más grande es la memoria
caché, más lenta es. Con lo cual, por más que el presupuesto lo permite, una
gran memoria caché no resulta muy ventajosa.

Ejemplos de tamaños de memorias caché:

 procesador Intel 80486 (1989): L1 de 8 KB;


 procesador Pentium 4 (2000): L1 de 8KB, L2 de 256KB.

Función de correspondencia

Existen tres técnicas para realizar la correspondencia entre los bloques de la


memoria principal y las líneas de la caché.

Figura 2: Memoria caché y principal

Fuente: Stallings, 2005, p. 112.

La Figura 2 muestra la relación entre líneas y bloques, en la que el número


de líneas siempre va a ser ampliamente inferior al número de bloques.

En la técnica de correspondencia directa, simplemente se corresponde un


bloque con solo una línea de caché. La correspondencia se observa en la
Figura 3, donde m es el número de líneas de la caché, y s especifica los
bloques de la memoria principal. (Stallings, 2005).

4
Figura 3: Correspondencia directa

Fuente: Stallings, 2005, p. 118.

Algoritmos de sustitución

Como la memoria caché es un recurso escaso, deben utilizarse técnicas que


permitan borrar información actualmente almacenada para dar lugar a
nuevos datos.

En caso de que se utilice correspondencia directa, el proceso es simple, ya


que, cuando un nuevo dato desde un bloque de memoria debe ser copiado,
el anterior que ocupe la misma linea deberá ser eliminado previamente.

En el caso de correspondencias asociativas, este proceso no funciona, y se


debe utilizar algoritmos. (Stallings, 2005).

 LRU (utilizado menos recientemente): los bloques que permanecen en


caché más tiempo sin ser referenciados son eliminados.
 FIFO (primero en entrar, primero en salir): los bloques que permanecen
en caché más tiempo son eliminados.
 LFU (utilizado menos frecuentemente): los bloques que han tenido
menos referencias son eliminados.
 Random (aleatorio). Se eligen líneas al azar y se eliminan.

Política de escritura

Antes de reemplazar un dato en la memoria caché, debe determinarse si fue


modificado y si se requiere copiarlo a la memoria principal antes de
eliminarlo.

La técnica más sencilla se denomina escritura inmediata, y consiste en


escribir tanto en la caché como en la memoria principal cualquier operación
de escritura. De esta forma, se garantiza que los datos contenidos en la

5
memoria principal son consistentes. La gran desventaja es el tráfico
adicional que genera cada operación de escritura.

Un método alternativo se denomina postescritura. Aquí los datos solo se


escriben en la caché y se activa un bit denominado actualizar para indicar
ese cambio. La desventaja es que la memoria principal contiene datos no
válidos que deberán ser buscados en la caché, y eso genera congestión.

Tamaño de línea

En primer lugar, un juego de probabilidades condiciona el diseño. Los


bloques que se copian desde la memoria principal a la caché contienen más
palabras que las requeridas por el procesador. Si el tamaño del bloque
aumenta, la probabilidad de cache hit aumenta, ya que es probable que los
datos almacenados cerca de aquel requerido sean referenciados en el corto
plazo.
Sin embargo, cuando el tamaño del bloque continúa aumentando, la
probabilidad de cache hit será menor, ya que habrá demasiados datos en la
caché.

El diseño óptimo no es sencillo y depende de las aplicaciones que utilice la


computadora.

Número de cachés

El acceso a la caché a través de un bus es más lento que si la propia memoria


se encuentra en el mismo chip del microprocesador. El avance de la
tecnología de integración hizo posible esto último, sin embargo, las
computadoras actuales se diseñan con más de una caché, ¿por qué?

El diseño consiste en dos niveles de caché: L1 y L2. La caché L1 está ubicada


en el chip del procesador, mientras que la L2 se conecta a través de un bus.

Si el procesador requiere datos que no están en la L1 caché y no existe la L2,


debe buscarlos en la memoria principal a través del bus. La velocidad de
acceso a esta memoria es mucho más lenta que la obtenida si el dato hubiera
estado en la L1.
Si existe una L2 caché que utiliza RAM estática (SRAM), el acceso será mucho
más rápido.

Para mejorar aún más las prestaciones, es posible prescindir del bus del
sistema y utilizar un bus dedicado entre la L2 y el procesador o, inclusive,
fabricar la L2 en el mismo chip que la L1.

6
Referencias
Stallings, W. (2005). Memoria caché. En W. Stallings, Organización y Arquitectura
de Computadores (pp. 104-147). Madrid: Pearson Educación.

7
RISC

Arquitectura del
Computador

1
Arquitectura RISC

Fundamentos
Los lenguajes de programación de alto nivel permiten los diseños orientados
a objetos y la programación estructurada, pero ocacionan un problema:
hacen que los programas en de lenguaje máquina sean muy grandes e
ineficientes.
Una primera solución fue mejorar los lenguajes de bajo nivel (máquina)
ampliando sus repertorios de instrucciones para optimizar la eficiencia.

En paralelo, se realizaron investigaciones, y surgió un nuevo concepto: en


lugar de ampliar la cantidad de instrucciones, estas se hicieron más sencillas.

Dichas investigaciones permitieron determinar, por ejemplo, cuáles son las


sentencias más usadas, y diseñar las instrucciones optimizadas para esas
tareas.

La conclusión de todos los estudios determinó las tres características de una


arquitectura denominada “conjunto reducido de instrucciones de
computadora” (reduced instruction set computer). Dichas características
son: (Stallings, 2005).

 gran número de registros;


 énfasis en la optimización del cauce de la información;
 repertorio simplificado de instrucciones.

Gran número de registros


Las conclusiones de los estudios realizados sobre aplicaciones y lenguajes de
alto nivel determinaron una alta utilización de registros.
Como los registros se encuentran en el mismo chip que el procesador, su
velocidad de acceso es muy rápida, aunque su tamaño es muy reducido.
Simplemente agregando mayor cantidad, es posible aprovechar la ventaja
de su velocidad.
Si bien un gran número de registros parece ser la solución para mejorar la
memoria, si necesitan acceder a la memoria primaria sin importar su gran
número, el problema continúa.
Para solucionar este inconveniente, se utiliza el concepto de ventana de
registros.

2
Figura 1: Ventana de registros

Fuente: Stallings, 2005, p. 494.

En la Figura 1 se muestran dos ventanas de registros. Cada ventana se divide


en tres: registros de parámetros, registros locales y registros temporales.
(Stallings, 2005).

Los registros temporales de ambas ventanas no son físicamente registros


diferentes, sino que en realidad son el mismo, lo que mejora notablemente
la velocidad al evitar transferencias. (Stallings, 2005)

Una solución de compromiso para evitar un número ilimitado de registros


que se solapen es la utilización de un buffer circular, como el que se observa
en la Figura 2. (Stallings, 2005).

Figura 2: Buffer circular

Fuente: Stallings, 2005, p. 495.

3
El buffer del ejemplo contiene 6 ventanas solapadas (A, B, C, D, E, F). Cada
ventana llama a la siguiente (A a B, B a C, etc.).
El procedimiento activo se indica mediante un puntero denominado CWP o
puntero de ventana actual.
Cuando se graban datos en la memoria, un puntero denominado SWP
(puntero de ventana salvada) servirá como indicativo del dato más
recientemente guardado. (Stallings, 2005).

El buffer tiene un tamaño limitado, por lo que, cuando E quiera hacer un


llamado a F, primero se deberá guardar en la memoria el contenido de A, ya
que A y F están solapados. Esta operación se realiza mediante una
interrupción en el momento de que el valor de los punteros CWP y SWP es
el mismo. (Stallings, 2005).

A modo de ejemplo, las computadoras RISC utilizan 8 ventanas de 16


registros cada una. La cantidad de activaciones de procedimiento posibles
para el diseño de ventanas con buffers es de n-1, siendo n el número de
ventanas. (Stallings, 2005).

La utilización de registros con ventanas mejora notablemente el


rendimiento, en comparación con el uso de la memoria caché, aunque esta
sea tán rápida como los registos. Esto se debe a que el proceso de
generación de dirección de memoria es bastante complejo para la memoria
caché. (Stallings, 2005).

Optimización de registros
Utilizar una gran cantidad de registros para ser una solución exitosa. Sin
embargo, los lenguajes de programación de alto nivel no conocen la
cantidad de registros físicos disponibles.

Un programa podría utilizar menos registros de los que físicamente están


disponibles, pero el desafío surge cuando se tienen que utilizar más. Es
función del compilador la asignación eficiente de los registros físicos
disponibles y su principal objetivo es que los operandos se mantengan la
mayor cantidad de tiempo posible en registro el y no en la memoria principal
para mejorar la eficiencia.
La solución consiste en asignar un registro virtual a cada cantidad de
programas que pueda requerir un registro físico. Como puede darse el caso
de que varios registros simbólicos no se solapen, es posible usar un solo
registro físico para todos ellos.
Cuando no hay más disponibilidad de registros reales, entonces el
compilador los ubicará en la memoria principal.

4
La técnica de coloreado de grafos se utiliza para optimizar la asignación de
registros reales. Su objetivo es minimizar la cantidad a colorear basándose
en que cada nodo (registro virtual) adyacente tendrá un color diferente.
(Stallings, 2005).

La Figura 3 muestra el grafo de colores para un programa de 3 registros


reales y 6 virtuales. La secuencia temporal (a) muestra la utilización de cada
registro virtual a lo largo del tiempo. La parte (b) es el grafo de colores donde
solo existen 3 colores diferentes, uno por cada registro real.

Figura 3: Grafo de colores

Fuente: Stallings, 2005, p. 499.

Con base en la secuencia temporal y el sombreado, F es el único registro


virtual que no tiene disponibilidad de registro real. R1 es usado por A y D;
R2, por B; R3, por C y E. Por lo tanto, F deberá utilizar la memoria principal
para el almacenamiento.

Repertorio reducido de instrucciones


La arquitectura RISC, en general, tiene cuatro caracterísicas:

 se realiza una instrucción por ciclo;


 las operaciones ocurren de registro a registro;
 los modos de direccionamiento son sencillos;
 los formatos de instrucciones son sencillos.

Una instrucción por ciclo significa que las instrucciones para RISC se parecen
a las microinstrucciones de CISC. Un ciclo se define como la operación de
utilizar dos operandos almacenados en registros, realizar alguna operación
en la ALU y, finalmente, guardar el resultado en el registro. Como las
instrucciones deben ser simples, para cumplir con este objetivo, pueden
estar cableadas.

5
Operar entre registros hace que el repertorio de instrucciones deba ser más
sencillo y simplifica además el diseño de la unidad de control. Esta
característica tiene otra ventaja: al fomentar el uso de registros, la velocidad
de las operaciones es mayor al evitar el uso de la memoria principal.

Utilizar modos de direccionamiento a registros sencillos simplifica las


instrucciones. Al igual que la característica anterior, se facilitan el diseño de
la unidad de control y el repertorio de instrucciones.

Los formatros de instrucciones sencillos se logran utilizando una longitud de


instrucciones fija, alineada a una palabra. También son fijas las posiciones
de los campos. Gracias a este diseño, se puede decodificar y acceder a los
operandos en forma simultánea aumentando la velocidad. La unidad de
control es también de diseño más sencillo.

RISC y CISC

En la actualidad, los procesadores sacan provecho de ambas arquitecturas,


por lo que se basan en su esquema tradicional, pero pueden usar alguna
característica que no es propia de una arquitectura pura.

6
Referencias
Stallings, W. (2005). Computadores de repertorio reducido de instrucciones. En W.
Stallings, Organización y Arquitectura de computadores (pp. 485-526). Madrid:
Pearson Educación.

7
Introducción a las Máquinas de Estado
Finito
Escrito por Raúl Alvarez.

Si ya haz realizado proyectos con microcontroladores en el pasado, pero nunca haz


usado Máquinas de Estado Finito y tampoco estás seguro de lo que son, posiblemente
te falta dar el siguiente "salto' que te acerque a un estilo más profesional en la
programación de microcontroladores y/o microprocesadores a través del uso de
herramientas y paradigmas más sofisticados como, en este caso, las Máquinas de
Estado Finito.
No es de extrañar que muchos desarrolladores profesionales de sistemas embebidos
de talla mundial, no solamente usen regularmente este estilo de programación, sino
que recomienden enfáticamente su uso en cualquier proyecto que se preste a ello (la
mayoría de los sistemas reactivos de pequeña y mediana escala, por ejemplo). Lo que
sí sorprende es que muchos estudiantes y egresados de la carrera de electrónica u
otras carreras afines al diseño embebido no han aprendido a usar este patrón de
programación en el desarrollo de sistemas embebidos. En este artículo le damos un
vistazo introductorio a este tema.

¿Qué es una Máquina de Estado Finito?


Una Máquina de Estado Finito (Finite State Machine), llamada también Autómata
Finito es una abstracción computacional que describe el comportamiento de un
sistema reactivo mediante un número determinado de Estados y un número
determinado de Transiciones entre dicho Estados.

Las Transiciones de un estado a otro se generan en respuesta a eventos de entrada


externos e internos; a su vez estas transiciones y/o subsecuentes estados pueden
generar otros eventos de salida. Esta dependencia de las acciones (respuesta) del
sistema a los eventos de entrada hace que las Máquinas de Estado Finito (MEF) sean
una herramienta adecuada para el diseño de Sistemas Reactivos y la Programación
Conducida por Eventos (Event Driven Programming), cual es el caso de la mayoría de
los sistemas embebidos basados en microcontroladores o microprocesadores.
Las MEF se describen gráficamente mediante los llamados Diagramas de Estado Finito
(DEF), llamados también Diagramas de Transición de Estados.

Sistemas Reactivos

Un Sistema Reactivo es aquel que interactúa constantemente con su medio ambiente,


tiene la característica de ser conducido por eventos (event driven), la respuesta de
tiempo es crítica y una vez que el sistema se activa permanece en ese estado de
manera indefinida. En estos sistemas los eventos llegan en tiempos impredecibles y el
sistema debe tener la capacidad de responder de manera inmediata, en el orden de los
milisegundos o microsegundos, sobre todo en sistemas donde la seguridad es crítica
(ejemplo: un piloto automático en un avión o una máquina para soporte de vida en un
hospital).

La gran mayoría de los sistemas embebidos (en base a microcontroladores o


microprocesadores) corresponden a esta categoría, debido a que estos sistemas están
típicamente conectados a varios tipos de sensores y transductores de entrada
encargados de captar los estímulos del medio ambiente (temperatura, presión, luz,
magnetismo, fuerza / peso, etc.), procesar dicha información y generar una respuesta
del sistema hacia el medio ambiente a través de transductores de salida y actuadores.

Sistemas Transformacionales

A diferencia de los Sistemas Reactivos un Sistema Transformacional es aquel que recibe


cierta información de entrada, realiza una cierta cantidad de cómputo, produce cierta
información de salida y luego termina. No muchos sistemas embebidos caen en esta
categoría; ejemplo más típicos son las aplicaciones para PC, como por ejemplo: Un
procesador de texto.

Diagrama de Estado Finito o Diagrama de Transición


de Estados
Un Diagrama de Estado Finito es un gráfico que representa los diferentes estados de
una MEF y todas las transiciones posibles entre los estados.
Como ejemplo, consideremos un muy simplificado sistema de control de un ascensor:
Estados: El sistema está formado por tres estados: DETENIDO, YENDO_ARRIBA y
YENDO_ABAJO. Los diferentes estados se los representa mediante bloques cuadrados
(como en este caso) o círculos.

Transiciones: Las transiciones se las representa mediante flechas que indican la


dirección de transición de un estado a otro.

Eventos: Los eventos para el sistema en este ejemplo son los siguientes:
 seleccion_piso: Es un evento externo que se genera toda vez que un usuario
selecciona un piso o llama al ascensor desde otro piso.
 arribo_nuevo_piso: Es un evento interno que se genera cada vez que los
sensores detectan que se ha arribado al nuevo piso seleccionado por el usuario.

Los eventos se anotan en el gráfico por encima de las flechas de transición.

Condiciones de Transición: Dos transiciones en este sistema de ejemplo tienen


asociadas sus respectivas Condiciones de Transición. No todas las transiciones poseen
Condiciones de Transición.
 piso_nuevo > piso_actual: Es la condición necesaria para que se produzca una
transición del estado DETENIDO al estado YENDO_ARRIBA.
 piso_nuevo < piso_actual: Es la condición necesaria para que se produzca una
transición del estado DETENIDO al estado YENDO_ABAJO.
Las Condiciones de Transición se anotan por debajo de las flechas de transición.

Una pseudo transición inicial del punto rojo al estado DETENIDO identifica a este
último como el estado inicial de la MEF.

Codificación en Lenguaje C
El sistema de control del ascensor se puede codificar en Lenguaje C de la siguiente
manera:

view source
print?
01./* Ejemplo de Máquina de Estado Finito para un ascensor
simplificado */
02.enum eEstados { // Los estados se la MEF se definen en una
enumeracion
03. DETENIDO,
04. YENDO_ARRIBA,
05. YENDO_ABAJO
06. } estado;
07.
08.int piso_nuevo, piso_actual;
09.main() {
10. estado = DETENIDO; // La MEF se inicializa en estado DETENIDO
11. while (TRUE) {
12. switch (estado) {
13. case DETENIDO:{ //
14. // Verificar si se ha seleccionado un nuevo piso:
15. piso_nuevo = seleccion_piso();
16. if (piso_nuevo > piso_actual)
17. estado = YENDO_ARRIBA;
18. else if (piso_nuevo < piso_actual)
19. estado = YENDO_ABAJO;
20. } break;
21. case YENDO_ARRIBA:{
22. piso_actual = comprobacion_piso();
23. if (piso_nuevo == piso_actual)
24. estado = DETENIDO;
25. } break;
26. case YENDO_ABAJO:{
27. piso_actual = comprobacion_piso();
28. if (piso_nuevo == piso_actual)
29. estado = DETENIDO;
30. } break;
31. }
32. }
33.}

Como se ve arriba, la MEF se codifica generalmente en un bloque "switch - case".


Todos los estados del sistema están definidos en una enumeración "enum { ... }" y la
variable "estado" almacena el estado actual del sistema.

Cada opción "case" representa un estado particular de la MEF:


 case DETENIDO:{ ... }
 case YENDO_ARRIBA:{ ... }
 case YENDO_ABAJO:{ ... }
 Las transiciones en la MEF se codifican mediante una reasignación de un nuevo
estado a la variable de estado:
 estado = YENDO_ARRIBA;
 estado = DETENIDO;
 Las condiciones de transición se codifican mediante sentencias condicionales "if
- else" asociadas a una determinada transición:
 if (piso_nuevo > piso_actual) ... else ...
 if (piso_nuevo < piso_actual) ... else ...
En una MEF se asocian acciones o respuestas del sistema (salidas) ya sea con los
mismos estados o con las transiciones, por ejemplo, al pasar del estado DETENIDO al
estado YENDO_ARRIBA, se activa el motor correspondiente que mueve el ascensor
hacia arriba. Al llegar al nuevo piso (cambio de estado de YENDO_ARRIBA a DETENIDO)
el motor se desactiva; por supuesto estos detalles han sido omitidos en el ejemplo por
conveniencia para no complicar la descripción del mismo.

Las Máquinas de Estado Finito no son Diagramas de


Flujo
Las MEF no son diagramas de flujo y no deben confundirse con los mismos. En una
MEF las acciones se asocian con las flechas (transiciones), mientras que un Diagrama
de Flujo las acciones se asocian a los vértices de la flecha o a los bloques de proceso.
Cuando una MEF se encuentra en uno de sus estados, básicamente se encuentra "en
reposo" esperando a que suceda un evento, mientras que en un Diagrama de Flujo el
sistema se encuentra activo realizando una tarea.

Tipos de Máquinas de Estado Finito


Existen principalmente dos tipos de Máquinas de Estado Finito: Las Reconocedoras o
Detectoras y las Transductoras.

Reconocedoras o Detectoras: Llamadas también Detectoras de Secuencia, realizan


básicamente la detección de patrones o secuencias determinadas en respuesta a las
entradas recibidas. Por su definición teórica este tipo de sistema no proveen señales de
salida (acciones), simplemente transicionan desde un estado inicial a un estado final de
"Exito", en cuyo caso se entiende que un patrón o secuencia ha sido reconocida
exitosamente. Las MEF Detectoras de Secuencia son útiles en aplicaciones en las que
se necesita verificar contraseñas, códigos o la validación de paquetes de datos en
transmisión digital, este último un ejemplo muy típico de su uso. A continuación, se
muestra el ejemplo de una verificación de un código / contraseña con una MEF
Detectora de Secuencia:

En este ejemplo el único patrón que la MEF aceptará y reconocerá es: 57936. (En
realidad cualquier patrón más largo que contenga la secuencia anterior, como:
1257936 o 5793688 será también reconocido por la MEF, sin embargo la verificación de
estos casos se ha omitido en el ejemplo por simplicidad).

El estado inicial de la MEF es el denominado "Ninguno". Cualquier evento (número)


diferente a 5 causará una transición al mismo estado y sólo la recepción de un "5"
causará la transición al estado "1 Bueno". La recepción de un "7" en el estado "1
Bueno" causará una transición al estado "2 Buenos", cualquier otro valor diferente
causará una transición a "Ninguno", lo cual obliga a reiniciar todo el proceso; y así
sucesivamente hasta llegar al estado "4 Buenos".

En el estado "4 Buenos", un "6" causará una transición a "Abierto". A dicha transición
está asociada una acción (salida) del sistema, la cual consiste en "desasegurar" (por
ejemplo: abrir una cerradura). Cualquier otro valor diferente de "6" obliga a reiniciar el
proceso desde "Ninguno".

En el estado "Abierto", un evento "cerrar" (por ejemplo, cerrar la puerta asociada a la


cerradura) causará que el sistema transicione a "Ninguno" y a dicha transición viene
también asociada una acción o salida del sistema que consiste en "asegurar" el sistema
(cerrojo).

Transductoras: Las MEFs transductoras se caracterizan por generar acciones o salidas


dependiendo de las entradas y/o estados; se implementan en sistemas embebidos
típicamente para aplicaciones de control. Un ejemplo de este tipo de sistema es el
ejemplo del ascensor ya analizado en la primera parte de este artículo.

Ventajas de las Máquinas de Estado Finito


 Son intuitivas y fáciles de entender.
 Abstraen convenientemente detalles secundarios que no son necesarios para el
análisis del sistema a un alto nivel y se centran en aspectos claves del mismo.
 Aportan un componente visual que facilita el análisis y diseño del sistema.
 Son universalmente aplicables.
 Su uso es común un sistema de transmisión de datos y el uso de protocolos de
comunicación.
 En programación minimiza grandemente la tendencia a escribir "código
espagueti" y puede ayudar a reducir la cantidad de variable globales necesarias,
aumentando al mismo tiempo la confiabilidad del sistema.

Desventajas de las Máquinas de Estado Finito


 No son aplicables a todos los problemas de diseño.
 Funcionan bien en sistemas pequeños con una cantidad de estados en el orden
de las decenas.
 No funcionan bien en sistemas con una cantidad de estados en el orden de las
centenas o miles de estados, aunque en estos casos es posible la estructuración
mediante una combinación de MEFs más pequeñas.
 La adición de funcionalidad es un poco inflexible.
 Son "planas" por naturaleza, no poseen estructura definida y no permiten una
jerarquización de los componentes que minimize la repetición innecesaria de
ciertos estados. Una mejor alternativa en este caso es el uso de las Cartillas de
Estado (Statecharts) y el uso de UML (Unified Modelling Language).
 Es fácil caer en el error de definir demasiados estados para el sistema, lo cual
minimiza la eficiencia, o de definir menos estados de lo que es necesario, lo
cual contradice al propósito de las MEFs de reducir la cantidad de código
convolucionado (demasiadas sentencias condicionales del tipo "if - then -
else").

Finalmente

Casi todos los que trabajamos, estudiamos o experimentamos con sistemas embebidos
hemos dado nuestros primeros pasos en la programación de sistemas embebidos
escribiendo el llamado "código espagueti". Algunos hemos llegado a usar con relativa
seguridad el patrón de programación conocido como "Plano Principal / Plano
Secundario" (Backgroud / Foreground) el cual implica el uso de interrupciones; aunque
la realidad prueba que muchos estudiantes universitarios o egresados de electrónica o
otras carreras afines que tienen que ver con diseño embebido no han llegado a
dominar adecuadamente el uso de interrupciones (hago énfasis en la palabra
"adecuadamente").

Cuánto menos conocido y entendido es el uso del patrón de programación con


Máquinas de Estado Finito, las cuales, no es de sorprenderse, son una herramienta
cuyo uso está ampliamente extendido en el ámbito del desarrollo de sistemas
embebidos de primer nivel. Muchos desarrolladores profesionales han recomendado
en repetidas ocasiones que, cualquier sistema reactivo que se preste al diseño con
Máquinas de Estado Finito (pues, obviamente, no todos se prestan, pero sí una
mayoría), debería hacer uso de este patrón de programación, debido a que éste provee
un abstracción del sistema que resulta natural, segura, fácil de entender y que puede
ser muy eficiente.

Si aún no lo has hecho, es hora de darle a las Máquinas de Estado Finito un uso más
frecuente. Con toda seguridad encontrarás que tus proyectos se simplifican en gran
manera, aunque por supuesto, dominar el uso de las Máquinas de Estado Finito
requiere que uno pase un buen tiempo estudiándolas y usándolas.

Fuente
Alvarez Torrico R. (S.F). Introducción a las máquinas de estado finito. Tecbolivia.com Tecnología
en Bolivia. Recuperado de: http://tecbolivia.com/index.php/articulos-y-tutoriales-
microcontroladores/13-introduccion-a-las-maquinas-de-estado-finito
Medios
magnéticos

Arquitectura del
Computador

1
HDD
La información procesada o por procesar en una computadora debe ser
almacenada en el tiempo. La memoria principal es volátil, por lo que se
necesitan otros medios que posibiliten almacenarla, aun cuando no esté
disponible la energía. Este tipo de memoria se denomina externa y es un tipo
de dispositivo entrada/salida, como lo son un monitor o un teclado.

Los discos magnéticos (hard disk drives o HDD) son actulamente el medio
más usado para este fin en computadoras personales, laptops, servidores y
arreglos de discos.

La principal ventaja de un disco magnético es su costo por bit. Aún cuando


la velocidad es mucho menor que la de las memorias semiconductoras, el
costo es determinante para que sean accesibles.

Componentes y funcionamiento
Un HDD se compone de la siguiente manera. (Stallings, 2005).

 Plato: superficie circular donde se almacenan los datos. Se construye de


material no magnético y es recubierto por material magnetizable. Un
disco puede tener uno o más platos, y cada cara de un plato se denomina
cara. Los platos están unidos a un eje.
 Cabezal: es un dispositivo que lee y escribe. Para grabar, se utilizan
patrones magnéticos y se magnetiza el plato.
 Brazo: es el dispositivo que sostiene a los cabezales. Poseen capacidad de
movimiento, y todos los brazos del disco lo hacen al mismo tiempo.
 Motor: controla la rotación de los platos.

El motor hace girar los platos a una velocidad constante, por ejemplo, a 5400
vueltas por minuto (RPM). Los brazos se mueven para ubicar los cabezales
en el sector del plato que debe ser escrito o leído. Los cabezales nunca llegan
a tocar al plato, sino que están separados por una pequeña superficie de
aire.

Organización de datos

La unidad más pequeña de almacenamiento en un disco magnético se


denomina sector y puede contener aproximadamente 512 B. Como los
cabezales son capaces de leer y escribir supeficies pequeñas del plato, y este

2
tiene forma circular, estos sectores se organizan en pistas (tracks). Cada
pista es un conjunto de sectores y su ancho en el plato es del tamaño del
cabezal. (Stallings, 2005).

Figura 1: Organización de datos en un disco magnético

Fuente: Stallings, 2005, p. 178.

Cuando los discos tienen más de un plato, la agrupación de pistas que tienen
la ubicación en todos los platos de denomina cilindro.

Para ubicar datos en el disco, antigüamente se usaba el sistema CHS


(cylinder, head, sector), que fue reemplazado por el actual LBA (logical block
addressing), donde simplemente se enumera a todos los sectores para
identificarlos.

3
Figura 2: Disco con varios platos

Fuente: Stallings, 2005, p. 178.

Performance en discos

La operación de lectura o escritura se basa en ubicar el cabezal en el sector


deseado y realizar la acción propiamente dicha. Los platos del disco rotan a
velocidad constante, mientras los brazos se mueven entre pistas.
Dos factores afectan mayormente el rendimiento que tendrá un disco:

 latencia rotacional;
 tiempo de búsqueda.

El tiempo de búsqueda es el tiempo que tarda el brazo en colocar el cabezal


en la pista donde se encuentran el sector con los datos. Como el plato rota
a velocidad constante, la latencia rotacional es el tiempo que demora el
sector en ubicarse por debajo del cabezal.

El tiempo de búsqueda no es fijo y no es facil de determinar por la cantidad


de variables en juego.

La latencia rotacional depende exclusivamente de la velocidad de rotación


del disco. A mayor velocidad, menor latencia. Un disco de grandes
prestaciones que rota a 15000 RPM tendrá una latencia rotacional de 2 ms
(media vuelta). En cambio, para un disco de PC que rota a 5400 RPM, la
latencia será de 5,5 ms.

4
Estos tiempos pueden parecer pequeños, pero cuando se comparan con la
velocidad de transferencia entre la CPU y la memoria principal o una red
Ethernet, son sumamente superiores.

RAID
Los discos magnéticos posee componentes mecánicos que no están libres de
fallas. Esto ocaciona pérdida de datos, aplicaciones fuera de servicios y
grandes pérdidas de dinero. Además, el rendimiento de un disco aislado no
es óptimo para ciertas aplicaciones.

Para solucionar estos inconvenientes, es posible agrupar discos para que


trabajen en paralelo. Esto mejora el rendimiento general del sistema y evita
la pérdida de información causada por roturas físicas.

Un RAID (redundant array of indepent disks o conjunto redundante de


discos independientes) resuelve la problemática. Existen diferentes niveles
RAID con diferentes prestaciones y protecciones.

Excepto el nivel 0, que no cumple la tercera, las carecterísticas de RAID son


tres.

 El sistema operativo ve una sola unidad de disco, a pesar de que el RAID


agrupa 2 o más discos.
 Los datos se distribuyen en el conjunto de discos del RAID.
 En caso de fallo, la información se puede reconstruir mediante paridad o
porque está duplicada.

Los niveles de RAID van desde el 0 hasta el 6, aunque en la práctica se utilicen


RAID 1, RAID 5 y RAID 6. (Stallings, 2005).

RAID 0

El nivel 0 no incluye redundancia y consiste en un agrupamiento de discos; y


en la distribución de los datos a través de los diferentes discos en
denominados slices. Esto mejora el rendimiento al poder leer o escribir en
varios discos. (Stallings, 2005).

5
RAID 1

RAID1 o disks mirroring es el nivel de RAID que ofrece mayor redundancia.


Cada dato se escribe en dos discos, de modo tal que, si uno falla, la
información está en el restante. Además, pueden leerse dos discos en forma
simultánea. La escritura tiene penalización, ya que para escribir debe
duplicarse en dos discos. Cuando se agrupan más de 2 discos (siempre de a
pares), se denominan RAID 10. (Stallings, 2005).

La desventaja principal de RAID 10 es su alto costo. Una vez calculada la


capacidad requerida de almacenamiento, debe duplicarse la cantidad de
discos. (Stallings, 2005).

Figura 3: RAID 10 de 8 discos

Fuente: Stallings, 2005, p. 188.

RAID 5

Este nivel utiliza el concepto de paridad para darle redundancia a los datos.
La paridad se construye mediante una XOR de todos los slices de datos. Si
algún disco falla, es posible reconstruir ese slice realizando una XOR con los
restantes. La máxima cantidad de discos que pueden fallar sin pérdida de
información es uno. (Stallings, 2005).

A diferencia de RAID 4, el cual utiliza un disco dedicado a la información de


paridad, RAID 5 distribuye dicha información en todos los discos.
Igualmente, para cálculos de capacidad, se considera que un disco es de
paridad. (Stallings, 2005).

6
Figura 4: RAID5 4+1 (5 discos)

Fuente: Stallings, 2005, p. 189.

La ventaja de RAID 5 es que, a diferencia de RAID 1, se utiliza solo un disco


para paridad, por lo que la utilización es mayor y el costo menor.
La desventaja es que el proceso de escritura genera más operaciones por
tener que recalcular paridad. (Stallings, 2005).

RAID 6

RAID 6 es similar a RAID 5, pero utiliza una doble paridad, por lo que tolera
fallas de dos discos. (Stallings, 2005).

Figura 5: RAID 6 4+2(6 discos)

Fuente: Stallings, 2005, p. 189.

7
Referencias
Stallings, W. (2005). Memoria externa. En W. Stallings, Organización y
Arquitectura de computadores (pp. 175-196). Madrid, España: Pearson Educación.

8
Medios
ópticos

Arquitectura del
Computador

1
Medios ópticos
Los medios de almacenamiento óptico tuvieron su auge en las décadas del
90 y 2000. Si bien posee grandes ventajas en comparación con los discos
magnéticos o cintas, actualmente los dispositivos de estado sólido o el
almacenamiento en la nube están generando una gran caída en su nivel de
utilización, por lo que son relegados a la difusión de audio y video.

Existen diversos medios ópticos, cada uno con ciertas características y uso.

 CD: disco compacto utilizado para almacenar pistas de audio. No puede


ser escrito por el usuario.
 CD-ROM: disco compacto utilizado para almacenar datos. No puede ser
escrito por el usuario. La capacidad es de 650MB o 700MB.
 CD-RW: disco compacto capaz de ser grabado por el usuario más de una
vez.
 DVD: disco versátil digital, capaz de almacenar hasta 4.7GB u 8.5GB. No
puede ser escrito por el usuario.
 DVD-R: similar al DVD, pero puede ser grabado una vez por el usuario.
 DVD-RW: similar a DVD-R, pero puede ser escrito más de una vez.
 DVD de alta definición: nueva tecnología capaz de almacenar 25 GB en
una sola capa.

CD-ROM

En la Figura 1 se observa cómo la información es almacenada en un CD-ROM.


Mediante un láser, se consigue crear un patrón de hoyos y valles. Luego, se
recubre con una superficie que refleja la luz que puede ser aluminio u oro.
Una protección final se coloca para evitar que se dañe la información por
ingreso de polvo y por rayaduras.

Para leer la información, se utiliza un láser de baja potencia. Mientras el


disco gira, el haz de luz traspasa la supericie protectora y luego es reflejado.
Si el haz de luz encuentra un hoyo, la luz se dispersa por la rugosidad del
material. Las intensidades de los haces de luz que vuelven al dispositivo
emisor varían, y de esa forma es posible determinar dónde había un hoyo y
dónde un valle, o bien dónde se grabó un 1 y dónde un 0.

2
Figura 1: Funcionamiento de un CD-ROM

Fuente: Stallings, 2005, p. 198.

A diferencia de un disco magnético, que divide la información en sectores


ubicados en diferentes pistas, los CD y CD-ROM utilizan solo una pista en
forma de espiral con inicio en el centro del disco. Los sectores que guardan
la información son todos iguales y del mismo tamaño; debido a esto, la
velocidad de rotación no es siempre la misma y, como la velocidad con la
que el láser lee es constante, el disco debe girar más lento cuando se intenta
leer en sectores ubicados en la periferia.

El formato de los segmentos se observa en la Figura 2. La cantidad de


segmentos que entran físicamente en el disco, multiplicado por 2352 B, dará
como resultado la capacidad final del disco.

 Para la sincronización, se utilizan 12 B; la secuencia es 00, seguida por 10


B en 1 y, finalmente, 00. Esto permite identificar el comienzo de un sector.
 La cabecera está formada por 4 B.
 El área de datos puede almacenar hasta 2048 B.
 Dependiendo del modo, el campo ECC es un código corrector de errores
de 288 B (modo 2) o sirven para datos de usuario (modo 1).

Figura 2: Formato de bloque de un CD-ROM

Fuente: Stallings, 2005, p. 198.

3
Los CD-ROM aventajan a los discos magnéticos, principalmente por su
portabilidad. Para distribuir música o software a múltiples clientes, fue el
medio por excelencia hasta la masificación de Internet y los servicios en la
nube.
Su principal ventaja es que no puede ser escrito por el usurio. En
comparación con los discos magnéticos, son más lentos.

CD-R y CD-RW

Los CD-R (disco compacto grabable) permite que el usuario sea el encargado
de grabar la información. Esto se logra utilizando un láser de baja intensidad
que puede ser manipulado en ambientes hogareños o empresariales.

El proceso de escritura consiste en activar un tinte mediante el láser de la


grabadora. El proceso es diferente al de un CD-ROM por el uso de este tinte,
a diferencia de los hoyos creados en el CD-ROM.

Este medio se puede utilizar para realizar copias de seguridad o como


almacenamiento de documentos, fotos, etc. Sin embargo, las actuales
tecnologías le están quitando protagonismo.

Un CD-RW presenta más ventajas que un CD-R, ya que puede ser escrito más
de una vez. Esto hace posible su uso para almacenamiento secundario. Sin
embargo, la velocidad de acceso es mucho menor que la de un disco
magnético.

La posibilidad de escribir más de una vez se logra utilizando la técnica de


cambio de fase. El material usado permite dos tipos de reflexión y el láser es
el encargado de realizar el cambio de fase.

DVD

Los DVD permiten mayor capacidad de almacenamiento en relación a los CD


por varias razones.
En primer lugar, los bits se almacenan con menor distancia entre sí y
aumentan la densidad. El espacio entre vueltas de la pista espiral se reduce
de 1,6 um a 0,74 um. Además, la distancia entre hoyos pasa de 0,834 um a
0,4 um. Esto es posible por la utilización de un láser de diferente longitud de
onda.

Los DVD de doble capa utilizan, como su nombre lo indica, tienen dos capas
reflectantes, en las que es posible almacenar información. Esto permite
aumentar la capacidad de un DVD simple capa a casi el doble.

4
Finalmente, un DVD puede tener dos superficies, lo cual hace que su
capacidad se duplique.

Estas tres características brindan capacidades de 4,7 GB, 8,5 GB y 17 GB.

DVD alta definición

Los DVD de alta definición permite almacenar más información, en


comparación con un DVD, utilizando discos del mismo tamaño. Esto se logra
con mayor densidad de bits mediante el uso de un láser con menor longitud
de onda.

Inicialmente, dos tecnologías compitieron: HD-DVD y Blu-ray DVD, la


segunda resultó ganadora y se convirtió en el estándar.

Figura 3: Comparativa entre CD, DVD y Blu-Ray

Fuente: Stallings, 2012, p. 215.

Al igual que sucede con los CD y DVD, existen tres vesiones para Blu-Ray:
solo lectura (BD-ROM), una escritura (BD-R) y regrabable (BD-RE).

5
Referencias
Stallings, W. (2005). Memoria externa. En W. Stallings, Organización y
Arquitectura de computadores (pp. 196-201). Madrid: Pearson Educación.

Stallings, W. (2012). External Memory. En W. Stallings, Computer Organization


and Architecture (pp. 210-215). Estados Unidos: Pearson Education.

6
Sony y Panasonic anuncian Archival Disc,
un nuevo estándar de disco óptico para
el almacenamiento
Por: Jose Mendiola

Sony y Panasonic anuncian Archival Disc, un nuevo estándar para disco


óptico para el almacenamiento

Las copias de seguridad son siempre un punto crítico para el usuario doméstico, pero
qué decir para las empresas. Que un respaldo se encuentre defectuoso o inservible
con el paso del tiempo, puede resultar fatal y un par de gigantes se han dispuesto a
abordar este problema de frente. Sony y Panasonic acaban de anunciar Archival Disc,
un nuevo formato de disco óptico que permite el almacenamiento de entre 300 GB y 1
TB por cada disco, y lo que es más interesante, con una composición material que lo
hace mucho más resistente al paso del tiempo que los estándares anteriores.
Ambos gigantes han unido fuerzas para desarrollar este nuevo formato más resistente
a los cambios de temperatura o humedad que los discos duros, y que además promete
una "compatibilidad intergeneracional", una frase de mucho calado que habrá que ver
cómo se materializa en el producto final.
Y lo cierto es que el trabajo en conjunto ha ido bastante rápido si tenemos en cuenta
que el acuerdo para el desarrollo de este estándar se rubricó a finales de julio del año
pasado, y si se cumplen los planes previstos, veremos los primeros discos de 300 GB a
mediados de 2015. A partir de esa fecha, irán llegando nuevos modelos de más
capacidad de forma progresiva, hasta alcanzar el tera que antes hemos indicado.

Fuente
Engadget. (S.F). Sony y Panasonic anuncian archival disc, un nuevo estándar de disco óptico
para el almacenamiento. Recuperado de: http://es.engadget.com/2014/03/10/sony-
panasonic-archival-disc/
SSD

Arquitectura del
Computador

1
Discos de estado sólido
Un disco de estado sólido es una memoria que se construye con
componentes de estado sólido, es decir, semiconductores, como por
ejemplo, compuertas NAND.

El costo de producción ha disminuido con el tiempo, y actualmente estos


dispositivos están comenzando a reemplazar a los discos magnéticos para
las aplicaciones que requieren alto rendimiento.

La Figura 1 muestra una comparación entre precios en dólares de 2


dispositivos hasta 2016 y el agregado de un disco con nueva tecnología SDD
TLC en el mismo año.

Entre 2012 y mediados de 2016, los valores son reales. El resto de 2016 es
un estimado, y hasta 2018 es proyectado. La tendencia es claramente
decreciente para los costos de los SDD.

Figura 1: Comparativa costos HDD y SDD

Fuente: Stallings, 2005, p. 198

Memoria flash

La memoria flash es un tipo de memoria semiconductora comúnmente


usada en celulares, tablets y GPS. Su funcionamiento se observa en la Figura
2.

2
En la parte (a) se representa la estructura de un transistor, el cual permite
controlar el flujo de una gran cantidad de corriente entre la fuente y el
drenaje con un pequeño nivel de tensión.

En las memorias tipo flash se agrega una compuerta llamada flotante al


transistor, parte (b) de la Figura 2. Un 1 binario se representa en este estado.
Un 0 binario se representa luego de aplicar un nivel alto de tensión, lo que
provoca que los electrones queden atrapados en la compuerta flotante y
permanezcan ahí, inclusive cuando deja de suministrarse energía a la
memoria.
Para volver al estado inicial, se aplica una tensión en la dirección opuesta.

Figura 2: Funcionamiento memoria flash

Fuente: Stallings, 2012, p. 206.

Existen dos tipos de memoria flash:


 memoria flash NOR;
 memoria flash NAND.

Las memorias flash NOR trabajan con bits como unidades de acceso y
proveen acceso aleatorio de alta velocidad. Son usadas para almacenar la
BIOS de una PC o el sistema operativo de un teléfono celular.

Las NAND usan un conjunto de 16 o 32 bits como unidades de acceso y son


utilizadas como memorias de cámaras y en discos de estado sólido, ya que
poseen mejores prestaciones para la escritura que las NOR.

Comparación con HDD

Si bien el costo de las memorias flash NAND es todavía superior al de los


discos magnéticos, las prestaciones son significativamente superiores, lo

3
que mejora notablemente el funcionamiento de aplicaciones que requieren
alto rendimiento.

La unidad de medida IOPS (input/output per second o pedidos de


entrada/salida por segundo) indica cuántas operaciones de lectura o
escritura podrán realizarse en un disco durante un segundo.

Un disco magnético de alto rendimiento puede soportar, aproximadamente,


300 IOPS, mientras una memoria flash NAND admite 45.000 para lectura y
15.000 para escritura. El tiempo de acceso a un disco magnético ronda de
los 4 a 10 ms, mientras que, para una flash NAND, es de 0,1 ms.

Figura 3: Un disco magnético y uno de estado sólido

Fuente: [Imagen sin título sobre discos duros]. (s. f.). Recuperado de https://goo.gl/uXU4lx

Desventajas de los SSD

Aun cuando el costo justifique la adopción de discos SSD por sobre los discos
magnéticos, hay una serie de desventajas que no están presentes en los
discos magnéticos y deben ser tenidas en cuenta.

 La performance decrece mientras más se utilicen los discos SSD.


 El número de escrituras es limitado.

El problema de la performance se debe a un fenómeno conocido como


fragmentación. Como los archivos se almacenan en un disco, en páginas de
cierta cantidad de bytes (4 KB, por ejemplo), generalmente no de forma
continua y la memoria es accedida en bloques de 512 KB, habrá 128 páginas
por bloque.

Cuando se escribe un bloque en memoria flash, se realizan tres operaciones.

4
 El bloque entero se lee desde la memoria flash y se coloca en memoria
RAM. Solo la página adecuada es modificada en la memoria RAM.
 Antes de guardar el bloque (con la página modificada) en la memoria
flash, se debe borrar la información del bloque completo en la memoria
flash, ya que no es posible sobrescribir en este tipo de memorias.
 Cuando el bloque fue borrado de la memoria flash, el bloque completo
con la información modificada es copiado desde la RAM hacia la memoria
flash.

A medida que la utilización de la memoria se incrementa, los archivos


comienzan a fragmentarse y a utilizar varios bloques. Si una página usa más
de un bloque, todos los bloques deben ser leídos, modificados, borrados y
copiados, lo que incrementa el tiempo de servicio.

Los fabricantes disminuyen los efectos con diversas técnicas, como por
ejemplo, reservar un área de memoria flash solo para escritura.

El segundo problema se basa en el número máximo de escrituras posibles


antes de que la memoria se vuelva inutilizable. Una aproximación del
número de escrituras posibles es de 100.000. Puede parecer un número
grande, pero ciertas aplicaciones pueden enviar pedidos de escritura casi
permanentes.

Una de las técnicas utilizadas consiste en utilizar una memoria caché


intermedia que demore las escrituras y las distribuya equitativamente a lo
largo de todas las celdas de la memoria flash.

5
Referencias
[Imagen sin título sobre discos duros]. (s. f.). Recuperado de
http://www.microtech.com/wp-content/uploads/2011/12/HDDvsSSD.jpg

Stallings, W. (2012). External Memory. En W. Stallings, Computer Organization and


Architecture (pp. 205-209). Estados Unidos: Pearson Education.

6
Audio y
video

Arquitectura del
Computador

1
Audio
En sus inicios, las computadoras cumplían tareas de cálculo. Actualmente,
son utilizadas para diversas tareas, como reproductores de música o video o
como consolas de videojuegos.

La voz humana y los sonidos producidos por instrumentos musicales son


analógicos, esto quiere decir que las señales cambian de forma continua a lo
largo del tiempo. En cambio, las computadora manejan señales digitales
donde los cambios son discretos; por ejemplo, un 1 binario se representa
con 5 V y un 0 binario, con 0V. El cambio es tan brusco, que se considera
discreto.

Teorema del muestreo


Digitalizar una señal consiste en convertirla de analógica en digital. Como las
señales analógicas cambian de forma continua a lo largo del tiempo, lo
primero que se debe realizar es tomar muestras cada cierto tiempo.
El desafío consiste en tomar suficientes muestras para que luego la señal
pueda ser reconstruida y se parezca lo más posible a la señal analógica
original.

El problema fue resuelto por Nyquist en lo que se denomina teorema del


muestreo de Nyquist. Para poder reproducir la señal original, Nyquist
demostró que es suficiente con tomar muestras al doble de la frecuencia
más alta de la señal original.

Por ejemplo, si una señal ocupa un ancho de banda que va desde 0 Hz hasta
400 Hz, deberá ser muestreada a 800 Hz para que pueda ser correctamente
digitalizada.

En la Figura 1 se observa una señal muestreada con 3 frecuencias diferentes.


A la izquierda, se encuentran las señales analógicas y, a la derecha, cómo se
vería la señal considerando las muestras tomadas.

En (a) se muestrea a una velocidad de 2f; la señal se parece bastante a la


original. En (b) se muestrea con 4f; la señal es igual a la obtenida en (a), pero
se utilizó innecesariamente una frecuencia mayor. Finalmente, en (c) se
tomaron muestras con la frecuencia máxima de la señal, pero estas muestras
no son suficientes, y la señal no se parece en nada a la original.

2
Figura 1: Muestreo a diferentes velocidades

Fuente: Forouzan, 2013, p. 117.

PCM
La técnica de modulación por codificación de pulsos (pulse code modulation)
es la más utilizada para convertir señales analógicas en digitales.

El proceso completo se observa en la Figura 2 y consta de tres pasos:

 muestreo de la señal analógica;


 cuantificación de la señal muestreada;
 codificación.

Figura 2: Codificador PCM

Fuente: Forouzan, 2013, p. 115.

3
Muestreo

Consiste en tomar muestras de la señal utilizando el teorema de Nyquist. El


resultado se denomina PAM o modulación por amplitud de pulsos.
Existen diferentes métodos para tomar muestras, el más utilizado es el
denominado flat-top. Esta técnica difiere del concepto ideal de muestreo,
como se observa en la Figura 3.

Figura 3: Muestreos

Fuente: Forouzan, 2013, p. 116.

Cuantificación

La cuantificación es el proceso mediante el cual se les asignan valores


discretos a los pulsos resultantes del muestreo. Como el objetivo final es
obtener una secuencia de unos y ceros (señal digital), primero deben
definirse los valores que tendrán los pulsos. (Forouzan 2013).

El proceso consta de cuatro pasos.

 Se asume que la señal analógica tiene amplitudes instantáneas entre V ín.


y Vmáx. (los valores mínimos y máximos de amplitud de la señal).
 El rango de valores se divide en L zonas con una altura denominada delta,
que resulta de dividir la diferencia entre Vmáx. – Vmín. en L.
 El centro de cada zona L tiene un valor entre 0 y L-1.
 Se aproxima el valor de cada pulso al centro más cercano de cada zona.

En el ejemplo de la Figura 4, los niveles mínimos y máximos de tensión son -


20 V y + 20V.
El número de niveles se fija en 8, entonces L = 8.
Vmáx. – Vmín, = 40,
El delta es, entonces, de 5 V.

4
En la etapa de muestreo, se toman 10 muestras. Se indican los valores de
tensión de cada una en el gráfico (-6,1 V, 7,5 V, 16,2 V, etc.).

La cuantificación consiste en determinar qué valor se le asigna a cada


muestra. Hay, en total, 8 disponibles (del 0 al 7), ubicados en el centro de
cada nivel.

Figura 4: Cuantificación y codificación

Fuente: Forouzan, 2013, p. 120.

A modo de ejemplo, la muestra -6,1 V está más cerca del nivel 2. La muestra
16,2 V está más cerca del nivel 6.

Los valores en la fila denominada normalized PAM values muestran los


niveles exactos tomados en la etapa de muestreo. La fila normalized
quantified values muestra el valor corregido para que el nivel sea el mismo
en el centro de cada zona. La diferencia entre estos dos valores se muestra
en la fila normalized error y produce el denominado error de cuantificación.

Por último, en la etapa de cuantificación, a cada muestra se le asigna un


código de cuantificación, en el ejemplo, de 0 a 7.

5
Codificación

El último paso de PCM consiste en asignar un código binario al código de


cuantificación.

El ejemplo de la Figura 4 utiliza 3 bits por muestra, ya que hay 8 niveles


posibles, y 23 = 8.

La fila encoded words dispone los códigos para cada muestra.

6
Referencias
Forouzan, B. (2013). Digital Transmission. En B. Forouzan, Data Communication and
Networking (pp. 115-124). Estados Unidos: McGraw Hill.

7
La impresora
Impresoras
La impresora es un periférico que le permite realizar una impresión (en papel) de datos
electrónicos.

Existen varias tecnologías de impresoras, siendo las más comunes:


 la impresora margarita
 la impresora matriz de punto (también llamada impresora matriz de impacto).
 la impresora de inyección de tinta y la impresora Bubble Jet</a>
 la impresora láser

Actualmente, las impresoras margarita y las de matriz ya casi no se utilizan.


Características

La impresora generalmente se caracteriza por los siguientes elementos:


 Velocidad de impresión: expresada en páginas por minuto (ppm), la velocidad
de impresión representa la capacidad de la impresora para imprimir un gran número
de páginas por minuto. Para impresoras a color, generalmente se realiza la distinción
entre la velocidad de impresión monocromática y a color.
 Resolución: expresada en puntos por pulgada (abreviado dpi), resolución
significa la nitidez del texto impreso. A veces, la resolución resulta diferente para una
impresión monocromática, a color o de foto.
 Tiempo de calentamiento: el tiempo de espera necesario antes de realizar la
primera impresión. Efectivamente, una impresora no puede imprimir cuando está
"fría". Debe alcanzar una cierta temperatura para que funcione en forma óptima.
 Memoria integrada: la cantidad de memoria que le permite a la impresora
almacenar trabajos de impresión. Cuanto más grande sea la memoria, más larga podrá
ser la cola de la impresora.
 Formato de papel: según su tamaño, las impresoras pueden aceptar
documentos de diferentes tamaños, por lo general aquellos en formato A4 (21 x 29,7
cm), y con menos frecuencia, A3 (29,7 x 42 cm). Algunas impresoras permiten imprimir
en diferentes tipos de medio, tales como CD o DVD.
 Carga de papel: el método para cargar papel en la impresora y que se
caracteriza por el modo en que se almacena el papel en blanco. La carga de papel suele
variar según el lugar donde se ubique la impresora (se aconseja la carga posterior para
impresoras que estarán contra una pared).* Los principales modos de carga de papel
son:
 La bandeja de alimentación, que utiliza una fuente interna de alimentación de
papel. Su capacidad es igual a la cantidad máxima de hojas de papel que la bandeja
puede contener.
 El alimentador de papel es un método de alimentación manual que permite
insertar hojas de papel en pequeñas cantidades (aproximadamente 100). El
alimentador de papel en la parte posterior de la impresora puede ser horizontal o
vertical.
 Cartuchos: los cartuchos raramente son estándar y dependen en gran medida
de la marca y del modelo de la impresora. Algunos fabricantes prefieren los cartuchos
de colores múltiples mientras que otros ofrecen cartuchos de tinta separados. Los
cartuchos de tinta separados son más económicos porque a menudo se utiliza un color
más que otro.

Resulta interesante examinar el costo de impresión por hoja. El tamaño de gota de


tinta es especialmente importante. Cuanto más pequeña sea la gota de tinta, más bajo
será el costo de impresión y mejor la calidad de la imagen. Algunas impresoras pueden
producir gotas que son de 1 ó 2 picolitros.
 Interfaz: cómo se conecta la impresora al equipo. Las principales interfaces son:
o USB
o Paralelo
o Red: este tipo de interfaz permite que varios equipos compartan una
misma impresora. También existen impresoras WiFi disponibles a través de una red
inalámbrica.

Impresora margarita
Las impresoras margarita se basan en el principio de las máquinas de escribir. Una
matriz en forma de margarita contiene "pétalos" y cada uno de éstos posee un carácter
en relieve. Para imprimir el texto, se ubica una cinta impregnado de tinta entre la
margarita y la hoja de papel. Cuando la matriz golpea la cinta, ésta deposita tinta sobre
el papel con la forma del carácter en el pétalo.

Estas impresoras se han vuelto obsoletas porque son extremadamente ruidosas y


lentas.
Impresora matriz de punto

La impresora matriz de punto (llamada algunas veces impresora de matriz o impresora


de impacto) permite la impresión de documentos sobre papel gracias al movimiento
"hacia atrás y hacia adelante" de un carro que contiene un cabezal de impresión.

El cabezal se compone de pequeñas agujas metálicas, accionadas por electroimanes,


que golpean una cinta de carbón llamada "cinta entintada", ubicada entre el cabezal y
el papel.
La cinta de carbón se desenrolla para que siempre haya tinta sobre ella. Al finalizar
cada línea, un rodillo permite que la hoja avance.

Las impresoras matriz de punto más recientes está equipadas con cabezales de 24
agujas, que permiten imprimir con una resolución de 216 dpi (puntos por pulgada).
Impresora a chorro de tinta y Bubble Jet

La tecnología de impresora a chorro de tinta fue inventada originalmente por Canon.


Se basa en el principio de que un fluido caliente produce burbujas.

El investigador que descubrió esto había puesto accidentalmente en contacto una


jeringa llena de tinta con un soldador eléctrico. Esto creó una burbuja en la jeringa que
hizo que la tinta saliera despedida de la jeringa.

Actualmente, los cabezales de impresoras están hechos de varios inyectores (hasta


256), equivalentes a varias jeringas, calentadas a una temperatura de entre 300 y
400°C varias veces por segundo.

Cada inyector produce una pequeña burbuja que sale eyectada como una gota muy
fina. El vacío causado por la disminución de la presión crea a su vez una nueva burbuja.

Generalmente, se efectúa una distinción entre las dos tecnologías diferentes:


 Las impresoras a chorro de tinta utilizan inyectores que poseen su propio
elemento de calentamiento incorporado. En este caso se utiliza tecnología térmica.
 Las impresoras Bubble Jet utilizan inyectores que tienen tecnología
piezoeléctrica. Cada inyector trabaja con un cristal piezoeléctrico que se deforma al ser
estimulado por su frecuencia de resonancia y termina eyectando una burbuja de tinta.

Impresora láser
La impresora láser permite obtener impresiones de calidad a bajo costo y a una
velocidad de impresión relativamente alta. Sin embargo, estas impresoras suelen
utilizarse mayormente en ambientes profesionales y semiprofesionales ya que su costo
resulta elevado.

Las impresoras láser utilizan una tecnología similar a la de las fotocopiadoras. Una
impresora láser está compuesta principalmente por un tambor fotosensible con carga
electrostática mediante la cual atrae la tinta para hacer una forma que se depositará
luego en la hoja de papel.

Cómo funciona: un rodillo de carga principal carga positivamente las hojas. El láser
carga positivamente ciertos puntos del tambor gracias a un espejo giratorio. Luego se
deposita la tinta con carga negativa en forma de polvo (tóner) en las distintas partes
del tambor que el láser cargó previamente.

Al girar, el tambor deposita la tinta sobre el papel. Un alambre calentado (llamado


corona de transferencia) permite finalmente la adhesión de la tinta en el papel.

Dado que la impresora láser no tiene cabezales mecánicos, resulta rápida y silenciosa.
Existen dos tipos diferentes de tecnología de impresora láser: "carrusel" (cuatro
pasadas) o "tándem" (una pasada).

 carrusel: con la tecnología de carrusel, la impresora efectúa cuatro pasadas


sobre el papel para imprimir un documento (una por cada color primario y una para el
negro, lo que en teoría hace que la impresión a color sea cuatro veces más lenta que
en negro).
 tándem: una impresora láser que utiliza tecnología "tándem" deposita cada
color en una sola pasada. Los tóners se depositan simultáneamente. La salida es igual
de rápida cuando se imprime a color como cuando se imprime en negro. Sin embargo,
esta tecnología resulta más costosa ya que los mecanismos son más complejos. Por lo
tanto, se suele utilizar en impresoras láser a color de mediana o alta calidad.

Impresora LED
Otra tecnología de impresión compite con las impresoras láser: la tecnología LED
(diodo emisor de luz). Con esta tecnología, un cabezal de impresión con diodos
electroluminiscentes polariza el tambor con un rayo de luz muy fino, permitiendo la
obtención de puntos muy diminutos. Esta tecnología es particularmente útil para
obtener una alta resolución (600, 1.200 ó 2.400 dpi).

Teniendo en cuenta que cada diodo representa un punto, la velocidad de impresión


termina afectando mínimamente la resolución. Además, esta tecnología carece de
piezas móviles, lo que permite el diseño de impresoras menos costosas, más sólidas y
más fiables.

Lenguaje de comandos de la impresora

El lenguaje de descripción de páginas es el lenguaje estándar que utilizan los equipos


para comunicarse con las impresoras. En efecto, una impresora debe poder interpretar
la información que un equipo le está enviando.

Los dos lenguajes de descripción de página principales son:

 Lenguaje de comandos de la impresora (PCL): un lenguaje conformado por


secuencias binarias. Los caracteres se transmiten según su código ASCII.
 Lenguaje PostScript: este lenguaje, utilizado inicialmente por Apple
LaserWriters, se ha convertido en el estándar de los lenguajes de descripción de
páginas. Es un lenguaje en sí mismo que se basa en un conjunto de instrucciones.

Servidores de impresora
Existen cajas de control llamadas servidores de impresora que permiten que una
impresora con conexión USB o paralela se encuentre disponible para una red completa.

Fuente
CCM (S.F). Impresoras. Recuperado de: Link: http://es.ccm.net/contents/382-la-impresora

También podría gustarte