notas de cÁtedra arquitectura del procesador i

23
NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I 2014 ING. GEORGINA INÉS CERÚSICO DE TOGNOLA FACULTAD DE CIENCIAS EXACTAS Y NATURALES UNIVERSIDAD NACIONAL DE CATAMARCA CONCEPTOS BÁSICOS

Upload: others

Post on 13-Nov-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

2014 ING. GEORGINA INÉS CERÚSICO DE TOGNOLA FACULTAD DE CIENCIAS EXACTAS Y NATURALES UNIVERSIDAD NACIONAL DE CATAMARCA

CONCEPTOS BÁSICOS

Page 2: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 1

COMPONENTES FISICOS DE UNA COMPUTADORA

Cuando observamos una computadora personal, esto es lo que vemos:

Nos interesa conocer sus componentes internos, y comprender cómo funcionan y

cómo se relacionan.

Las partes que vemos son: el monitor, el teclado, el mouse o ratón, y una unidad

principal constituida por el gabinete que encierra y protege lo que se denomina

motherboard, placamadre o placa principal, que es el lugar donde se conectan otros

elementos como el microprocesador, los módulos de memoria, tarjetas especiales, el

disco duro, la unidad de DVD, diversos controladores, etc.

En la figura siguiente se muestra el interior de la unidad principal:

Unidad

Principal

Monitor

Teclado

Mouse o

Ratón

Interior de la

unidad

principal de

una

computadora

Page 3: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 2

En las primeras clases presentamos un esquema de los componentes de una

computadora, los que de seguro vieron en otras asignaturas de su formación

disciplinar:

ESQUEMA DE LOS COMPONENTES DE LA COMPUTADORA

Los elementos principales con que cuenta una computadora son los siguientes:

*La Unidad Central de Proceso (CPU)

*La Memoria

*Los Controladores

*Las Unidades de Entrada/Salida Dirección de un puerto/Dirección de una celda de memoria

Bus de Direcciones

Unidad C M CPU

de E/S

Dato/Instrucción Bus de datos

Leer/Escribir Bus de control

C = Controlador de la Unidad de Entrada/Salida

M = Memoria

CPU = Unidad Central de Proceso

Ya mencionamos que la CPU realiza tareas de control y cálculo. Sus

componentes principales son:

* La Unidad de Control

Interpreta las instrucciones y genera órdenes para que se ejecuten.

* La Unidad de cálculo (Aritmética y Lógica).

Siguiendo las órdenes generadas por la Unidad de Control, recibe los datos de la

memoria, opera con ellos y almacena el resultado en la memoria. Los cálculos son de

tipo aritmético o lógico.

Un microprocesador (µP) es un procesador en un solo chip (pastilla de circuito

integrado). Es la unidad central de proceso (CPU).

La memoria es el lugar donde se almacenan o cargan los datos y el o los

programas que la CPU va a ejecutar.

Como la CPU sólo entiende secuencias determinadas de valores binarios, toda la

información destinada a ser procesada por la computadora debe traducirse, en último

término a binario. La información en binario (datos e instrucciones del programa) se

almacena en la memoria.

La CPU sólo ejecuta órdenes elementales. Un conjunto de estas órdenes

elementales ordenadas consecutivamente se llama programa.

Page 4: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 3

Un Controlador constituye la interfaz entre la computadora y una determinada

Unidad de Entrada/Salida. Por ejemplo, cuando nos referimos al monitor como

unidad de E/S, el controlador de video es el que realiza esa interfaz o comunicación

entre el monitor y el resto de los componentes. Estos controladores liberan a la CPU del

trabajo de tener que entender a todas las unidades de E/S para poder manejarlas. Los

controladores pueden estar incorporados en la placamadre (onboard), como

generalmente, está el controlador de video; o pueden encontrarse en alguna tarjeta que

se agrega en las ranuras o slots de expansión de la placamadre.

Las Unidades de Entrada/Salida contienen los datos a procesar, y las

dividiremos en dos grupos, según su función: medios de almacenamiento (unidades que

almacenan datos en un formato comprensible para la computadora) y los periféricos

(unidades que permiten la entrada o salida de información, es decir la comunicación con

el usuario). Para el funcionamiento de Unidad Central de Proceso es necesario que los

datos e informaciones estén soportados en un elemento físico al que la propia

computadora tenga acceso; estos elementos son los llamados medios de

almacenamiento. Así podemos decir que un medio de almacenamiento es un medio

físico que permite almacenar datos de forma que una computadora pueda manejarlos,

ejemplos de éstos son los discos duros, CD, DVD, cintas magnéticas, etc.

El bus

El bus es un canal de comunicación entre todas las unidades funcionales del

sistema. La interconexión entre estas unidades se realiza al “colgar” cada unidad al bus.

Cuando se añade una nueva unidad, se conecta en una de las ranuras (slots) de

expansión, conectada directamente al bus.

El bus se compone de varias líneas o hilos (uno por cada bit) por el que circula

un cierto tipo de información. Hay tres tipos de buses,según la información que circula

por el mismo:

* Bus de datos

* Bus de direcciones

* Bus de control

El Bus de datos:

Funciona en conjunción con el bus de direcciones para transmitir los datos.

El Bus de direcciones:

Son n líneas de señales para transmitir las direcciones de las posiciones de

memoria y de los puertos que corresponden a los dispositivos conectados al bus. Puesto

que cada línea puede tener dos valores posibles (0 o 1), se pueden especificar 2n

direcciones distintas. Piensen en esta afirmación ya que del tamaño del BUS de

DIRECCIONES dependerá la cantidad de puntos o celdas de la memoria a los que la

CPU puede acceder.

El Bus de control:

Son una serie de líneas que sirven básicamente para indicar el tipo de

información que viaja por el bus. Por ejemplo, sirve para indicar el tipo de operación

que la CPU quiere realizar en un acceso a memoria: leer un dato de una celda de

memoria o escribir un dato en una posición de memoria indicada a través del bus de

direcciones.

Más sobre el microprocesador:

El microprocesador está conectado a un oscilador (o reloj) que genera impulsos

igualmente espaciados en el tiempo. En el caso de los microprocesadores 8088 de la

familia Intel, la frecuencia base del reloj es de 14,31818 Mhz (millones de ciclos por

Page 5: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 4

segundo). El 8088 divide esta frecuencia base por una constante para implementar un

ciclo de máquina. Por ejemplo, 4,77 Mhz es un tercio de la frecuencia base. Por lo

tanto, esta frecuencia de 4,77 Mhz es la empleada por un microprocesador Intel 8088.

Los sistemas nuevos incluyen la circuitería del oscilador en el conjunto de chips

(chipset) de la tarjeta madre. La señal de reloj forma la base de tiempo sobre la cual

opera la computadora. Un sistema de computación típico corre a mil millones de esos

ciclos por segundo, de manera que la velocidad se mide en GigaHertz (un hertz es igual

a un ciclo por segundo.

Un ciclo individual es la mínima porción de tiempo para el procesador. Cada

acción requiere de un ciclo o varios para ejecutarse. Por ejemplo, para transferir datos

desde y hacia la memoria, un Pentium II necesitaba un mínimo de tres ciclos para

preparar la primera transferencia y sólo uno más para llevar a cabo las siguientes tres,

cuatro, cinco o seis transferencias consecutivas. Los ciclos adicionales de la primera

transferencia son conocidos como estados de espera. Un estado de espera es un tic de

reloj en el cual nada sucede; esto asegura que el procesador no se adelante al resto de

los componentes. Ampliaremos cuando se estudie en detalle la memoria.

Por lo tanto, cada instrucción que ejecuta el microprocesador consume un

número determinado de ciclos de máquina.

A los componentes ya mencionados de la CPU (Unidad de Control y Unidad

Aritmética y Lógica) deben agregársele otros elementos que la conforman, como por

ejemplo la FPU (Floating Point Unit – Unidad de Punto Flotante), la memoria caché

interna, y los registros internos:

Unidad de Punto Flotante: es la unidad que realiza operaciones con

números reales, es decir, números con parte entera y parte fraccionaria).

Es lo que en los micros anteriores al Intel 486 DX, se conocía como

coprocesador matemático.

Memoria Caché Interna: también llamada caché L1 (Level 1), de nivel 1,

o de Primer Nivel. Es una porción de memoria que es más rápida, más

costosa, menos densa y de menor tamaño que la memoria principal. El

objetivo de esta memoria es contener los datos y las instrucciones que se

supone, la CPU va a requerir de manera inmediata. De esta forma se

accedería a los datos y a las instrucciones del programa más rápidamente

que si los tuviera que traer de la memoria principal.

Registros Internos: son pequeñas porciones de memoria donde el

procesador guarda información relacionada con el programa que se está

ejecutando en un momento determinado.

Las figuras siguientes corresponden a dos procesadores de la empresa Intel: un

Pentium II, y un Core i7.

Es importante tener en cuenta que todos los componentes e innovaciones que se van

incorporando a los procesadores, buscan que los mismos mejoren su rendimiento, es

decir, ejecuten los programas de la manera más eficiente, disminuyendo los tiempos de

ejecución y aprovechando al máximo los recursos disponibles. Tengan en cuenta esta

idea principal, cuando desarrollen su trabajo sobre microprocesadores.

Page 6: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 5

Recuerden que cada vez que hablemos de la CPU o Unidad Central de Proceso,

estaremos haciendo referencia al microprocesador o procesador, o simplemente,

“micro”.

Comenzaremos detallando uno de los componentes más importantes del

microprocesador, los registros internos.

REGISTROS INTERNOS DEL MICROPROCESADOR

Como la CPU es un componente distinto de la memoria de la máquina, contiene celdas

de memoria especiales, llamadas registros, que sirven para guardar temporalmente los

datos que se manipulan. Los registros sirven para guardar los datos que tienen

aplicación inmediata para la operación en curso, guardan información respecto al

programa que se está ejecutando.

Como se ve en la Unidad de Circuitos digitales, los registros se implementan a través de

circuitos secuenciales

Por lo tanto, podemos decir que en el centro de todos los procesadores se encuentran sus

registros, “variables de hardware”, en los cuales pueden cargarse datos de la memoria,

allí tratarlos con la ayuda de las instrucciones en lenguaje máquina y finalmente

volverlos a escribir en la memoria. Esto es mucho más rápido que la manipulación de

información dentro de la memoria, ya que los registros se descargan directamente en el

procesador y por lo tanto no es necesario acceder al bus. La siguiente ilustración

describe los catorce registros de 16 bits del microprocesador 8088, estos registros se

encuentran también en todos sus sucesores.

Registros Generales Registros de Segmento 15 8 7 0

AX

ACCUMULATOR D S DATA SEGMENT

A H A L

BX

B H B L BASE E S EXTRA SEGMENT

CX

CH CL COUNT C S CODE SEGMENT

DX DATA

DH DL S S STACK SEGMENT

D I DESTINATION INDEX

S I SOURCE INDEX Contador de Programa

,

S P STACK POINTER I P INSTRUCTION

POINTER

B P BASE POINTER

Page 7: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 6

Registro de Banderas

OF DF IF TF SF ZF AF PF CF

Todos los registros tienen un tamaño de 16 bits (2 bytes). Así pueden registrar un valor

entre 0 y 65535 (1111111111111111b, o FFFFh).

Puede ver que se han dividido los registros en cuatro grupos: registros generales,

registros de segmento, contador de programa y registro de banderas. Esta división

proviene del tipo de información que se almacena en ellos y de las diferentes tareas que

los registros efectúan en el tratamiento de instrucciones en lenguaje máquina y en el

acceso a la memoria.

Los bits se numeran de derecha a izquierda. El bit 0 es el menos significativo.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 bits

Registros Generales:

Existen cuatro registros de datos o de almacenamiento temporal.

AX= Acumulador

Es el registro principal utilizado en las instrucciones aritméticas.

BX= Base

Se usa para indicar un desplazamiento (offset).

CX= Contador

Se utiliza como contador en los bucles y en las operaciones de tipo repetitivo.

DX= Dato

Se usa también en operaciones aritméticas.

Cada uno de estos registros puede dividirse en dos registros de 8 bits. De esta manera

cada uno consiste prácticamente en tres registros diferentes: uno grande de 16 bits, y

dos pequeños de 8 bits. Así, es posible referirse al byte superior (más significativo) o al

byte inferior (menos significativo) en los registros AX, BX, CX y DX. Por ejemplo,

para referirnos al byte superior (bits 15 a 8) usamos el AH (High o alto) para el byte

inferior (bits 7 a 0) usamos el AL (Low o bajo).

Existen dos registros punteros de pila:

SP = Stack Pointer - Puntero de la pila

Contiene la dirección relativa al segmento de pila.

BP = Base Pointer - Puntero Base

Se utiliza para fijar el puntero de la pila y así poder acceder a los elementos de la pila.

Existen además dos registros índices:

Se utilizan como desplazamiento relativo a un campo de datos.

SI = Source Index - Indice fuente

DI = Destination Index - Indice Destino

Registros de Segmento:

Existen cuatro registros de segmentos, contienen la dirección de comienzo de ciertos

segmentos de memoria.

CS = Code Segment. Registro de Segmento de Código

Contiene la dirección del segmento de código, es decir del segmento donde se

encuentran las instrucciones del programa.

DS = Data Segment. Registro de Segmento de Datos

Page 8: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 7

Contiene la dirección del segmento de datos, es decir del área de memoria donde se

encuentran los datos del programa.

SS = StackSegment. Registro de Segmento de Pila (Stack = Pila)

Contiene la dirección del segmento de pila. La pila es un espacio de memoria

temporal que se utiliza para almacenar valores de 16 bits (palabras).

ES = Extra Segment. Registro de Segmento Extra

Contiene la dirección del segmento extra, que es un segmento de datos adicional

que se utiliza para superar la limitación de los 64 Kb (Kilo Bytes) del segmento de datos

y para hacer transferencia de datos entre segmentos. (Recordar los ejemplos vistos en

clase)

Cada uno de estos registros guarda la dirección de segmento de una porción de

memoria asociada con el programa en ejecución.

Puntero de Instrucción o Contador de Programa (IP):

Llamado Contador de Programa (ProgramCounter, PC), contiene el desplazamiento de

la instrucción siguiente a ejecutar respecto del segmento de código (codesegment) del

programa en ejecución.

En conjunción con el registro CS (codesegment), indica la dirección completa de la

siguiente instrucción a ejecutar, es decir, CS:IP.

Los programas no pueden manejar directamente a este registro, pero sí lo pueden hacer

en forma indirecta mediante instrucciones de bifurcación.

El Registro de Banderas:

Cada bandera (flag) es un bit y se usa para registrar la información de estado y de

control de las operaciones del microprocesador. Hay nueve banderas (los 7 bits restantes

del registro no se utilizan):

Seis banderas de estado: Registran el estado del procesador, normalmente asociado a

una comparación o a una instrucción aritmética:

CF = CarryFlag - Bandera de Acarreo. Indica acarreo en las instrucciones aritméticas.

OF = OverflowFlag - Bandera de desbordamiento (aritmético).

ZF = Zero Flag - Bandera de resultado cero o comparación igual.

SF = SignFlag - Bandera de resultado o comparación negativa.

PF = ParityFlag - Bandera de paridad (número par de bits).

AF = Auxiliar Flag - Bandera auxiliar. Indica si hay necesidad de ajuste en las

operaciones aritméticas con números BCD (Decimal Codificado en Binario).

Tres banderas de control: Registran el modo de funcionamiento del procesador.

DF = DirectionFlag - Bandera de dirección. Controla la dirección (hacia adelante o

hacia atrás) en las operaciones con cadenas de caracteres incrementando o

decrementando automáticamente los registros índices (SI y DI).

IF = InterruptFlag - Bandera de interrupciones. Indica si están permitidas o no las

interrupciones de los dispositivos externos (más adelante se ampliará sobre el tema de

interrupciones).

TF = TrapFlag - Bandera de atrape. Controla la operación modo paso a paso.

El registro de banderas en primer lugar sirve para la comunicación entre las

instrucciones consecutivas en lenguaje de máquina, almacenando el estado de las

operaciones aritméticas y lógicas. De manera que un programa podrá determinar por

ejemplo, mediante la bandera de carry (CF), si después de la suma de dos registros de

16 bits, el resultado es superior a 65535 y por tanto ya no puede representarse como

cifra de 16 bits. Los bits de signo, cero y desbordamiento (overflow), efectúan

Page 9: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 8

funciones similares y con su ayuda puede determinarse después de comparar dos

registros, si el valor del primer registro es superior, inferior o igual que el del segundo.

Segmentos y registros asociados:

Como vemos, un programa consta de cuatro tipos de segmentos. Cada segmento se

direcciona mediante un determinado tipo de registro de segmento.

Segmento de Código. Cada instrucción se direcciona mediante:

registro de segmento: CS

registro de desplazamiento: IP

CS : IP

(Dirección completa de la siguiente instrucción a ejecutar)

Segmento de datos. Los datos se direccionan mediante:

registro de segmento: DS

registros de desplazamiento: BX, SI o DI

DS : BX o DS : SI o DS : DI

(Dirección completa de un dato en el segmento de datos)

Segmento de pila. Los datos se direccionan mediante:

registro de segmento: SS

registros de desplazamiento: SP o BP

SS : SP o SS : BP

(Dirección completa de un resultado intermedio en la pila)

Segmento extra. Igual que el de datos, sustituyendo DS por ES, es decir:

registro de segmento: ES

registros de desplazamiento: BX, SI y DI

ES : BX o ES : SI o ES : DI

(Dirección completa de un dato en el segmento de datos adicionales)

Ejercicio Práctico

Registros Internos del Microprocesador

Con los valores de lo registros, y teniendo en cuenta el programa, coloca (V) o (F):

Si la CPU debe acceder a una celda para almacenar resultados intermedios, podría acceder

a las celdas siguientes: 17CD:0978, y 17CD:0000.

La CPU está trabajando modo paso a paso.

La dirección de segmento del área de memoria donde se ha cargado el programa es 16CD.

La CPU no está permitiendo que la interrumpan.

La última operación que realizó el micro produjo desbordamiento.

Las direcciones de desplazamiento de las celdas donde se podrían guardar datos

adicionales son: 7FCD, FC34 y 0086.

Se han completado correctamente las direcciones de las posiciones de memoria donde se

ha cargado el programa.

La última operación que realizó el micro dio resultado cero o comparación igual.

La dirección de segmento del área de memoria donde se han cargado los datos del

programa es 17CD.

La siguiente instrucción a ejecutar es 0119.

Page 10: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 9

AX = 12CF BX = 0086 CX= 0002 DX = 12DC SP = 0978 BP = 0000 SI = 7FCD

DI = FC34 IP = 0119

SS = 17CD ES = 34FF DS = 21FF CS = 16CD

c = 1 p = 0 o = 1 z = 0 s = 0 a = 0 t = 1 i = 1 d = 0

21FF : 0119 F7D0 NOT AX

21FF : 011B EB04 JMP 0121

21FF : 011E B42C MOV AH,2C

De ser necesario, realiza las correcciones en las direcciones de las posiciones de

memoria para que estén indicadas correctamente.

ESPECIFICACIONES DE PROCESADORES

Con frecuencia se hace referencia a especificaciones confusas cuando se habla

de procesadores. Los párrafos que siguen analizan algunas de ellas, incluyendo al bus de

datos, el bus de direcciones y la velocidad. Se adjunta a este apunte una tabla con las

especificaciones de los microprocesadores de las PC.

Los procesadores pueden ser identificados a través de dos parámetros

principales: su “anchura” y su velocidad.

La velocidad de un procesador es un concepto bastante simple: ésta se mide en

megahertz (MHz), es decir, millones de ciclos por segundo, y como es de suponer,

cuanto mayor sea mejor. Hablamos entonces de microprocesadores con una velocidad

de 850 MHz, de 900 MHz y de 1000 MHz o más, lo que nos hace contar con

microprocesadores que trabajan a más de 1 GHz (GigaHertz).

La ”anchura” de un procesador requiere que se analicen tres especificaciones

principales de un procesador. Ellas son:

El tamaño de los registros internos.

El ancho o tamaño del bus de entrada y salida de datos.

El ancho o tamaño del bus de direccionamiento de memoria.

Bus de datos: El ancho del bus externo de datos, define el número de bits de

datos que pueden ser transferidos hacia fuera o dentro del microprocesador en un ciclo.

Un sistema típico de computación tiene varios buses internos y externos. Como se

mencionó anteriormente, un bus es una serie de conexiones que transportan señales

comunes. Entre más señales puedan transferirse simultáneamente, más datos podrán

enviarse en un intervalo específico y, por lo tanto, más ancho y rápido será el bus. Un

bus de datos más ancho es como tener una autopista con más carriles, la cual permite un

tránsito mayor.

Los datos de una computadora son enviados como información digital

consistente de un intervalo en el cual un alambre transfiere 5 Voltios para expresar un

bit de datos 1, o 0 Voltio para expresar un bit de datos 0. Entre más alambres tenga, más

bits individuales podrá enviar en el mismo intervalo. Un chip como el 80286 o el 80386

SX, con 16 cables o hilos para transmitir y recibir datos, tiene un bus de datos de 16

bits. Un chip de 32 bits, como el 80386 DX y el 486, tiene el doble de alambres

Responde: ¿Cuántos ciclos por segundo son 2.4 GHz?

Page 11: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 10

dedicados a la transmisión simultánea de datos que uno de 16 bits; uno de 32 puede

enviar entonces el doble de información en el mismo intervalo. Los Pentium, Pentium

Pro y Pentium II pueden transferir 64 bits de datos a la vez desde y hacia la memoria del

sistema.

Registros Internos: El tamaño de los registros internos indica la cantidad de

información sobre la cual puede operar el procesador al mismo tiempo; también

determina cómo transfiere los datos dentro del chip. A esto se lo conoce también como

bus interno de datos. Desarrollaremos en detalle el tema de registros internos en las

páginas siguientes y allí se verá que por ejemplo, el procesador puede sumar los

contenidos de dos registros y almacenar el resultado en un tercero. El tamaño de registro

determina el tamaño de los datos que puede manejar el procesador, y describe también

el tipo de software o instrucciones que puede ejecutar un chip. Es decir que los

procesadores con registros internos de 32 bits pueden ejecutar instrucciones de 32 bits

que procesan porciones de 32 bits de información, pero los procesadores con registros

de 16 bits, no. Los procesadores desde el 80386 al Pentium III poseen registros internos

de 32 bits, y por lo tanto ejecutan los mismos sistemas operativos y aplicaciones de 32

bits.

Bus de direcciones: El bus de direcciones es el conjunto de alambres o hilos,

como decimos en las clases, que transporta la información de direccionamiento usada

para describir la ubicación de memoria a la cual se está enviando la información o

aquella de donde se está obteniendo, en un momento dado. Como en el caso del bus de

datos, cada alambre de un bus de dirección transporta un solo bit, éste es uno de los

dígitos de la dirección. Entre más hilos se usen para calcular estas direcciones, mayor

será el número total de ubicaciones de direcciones. El tamaño (o ancho) del bus de

direcciones indica el tamaño máximo de RAM que un chip puede direccionar.

Como las computadoras usan el sistema de numeración binaria (base 2), un bus

de direcciones que constara sólo de dos hilos podría proporcionar cuatro direcciones

distintas solamente (00, 01, 10, y 11) es decir 22. Un bus de tres hilos permitiría 8

combinaciones o direcciones distintas: 000, 001, 010, 011, 100, 101, 110, y 111, es

decir 23. Los procesadores 8086 y 8088 usaban un bus de direcciones de 20 bits, por lo

tanto podían direccionar 220

puntos de memoria distintos, es decir 1048576 celdas de

memoria.

El bus de datos y el de direcciones son independientes, y los diseñadores y

fabricantes de chips pueden usar el tamaño que deseen para cualquiera de ellos. Sin

embargo, generalmente los microprocesadores con buses de datos más grandes tienen

buses de direcciones mayores. Esta información nos da una idea aproximada de la

potencia relativa del chip: el tamaño del bus de datos es una indicación de la

capacidad de transferencia de información, y el tamaño del bus de direcciones indica

cuánta memoria puede manejar el chip.

SET DE INSTRUCCIONES DEL MICROPROCESADOR

Responde: Si se almacenan ocho bits en cada celda de memoria, ¿cuántos MB son

capaces de direccionar los chips con un bus de direcciones de 24 bits?

Page 12: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 11

Cada microprocesador posee un conjunto o set de instrucciones definido que constituye

su lenguaje de máquina. Todo programa realizado en un lenguaje de alto nivel, al

compilarse es llevado o traducido a este conjunto de instrucciones que es lo que el

microprocesador interpreta y ejecuta.

Las instrucciones del microprocesador Intel 8088/8086 y sus sucesores se dividen en los

siguientes grupos:

Instrucciones de Transferencia de Datos: Mueven información entre registros y

posiciones de memoria o puertos de entrada/salida, por ejemplo: MOV (mover), IN

(entrada de puerto), OUT (salida al puerto), etc.

Instrucciones Aritméticas: Realizan operaciones aritméticas sobre números

binarios o números BCD (Decimal Codificado en Binario), por ejemplo: ADD

(sumar sin acarreo), DIV (dividir sin signo), MUL (multiplicar sin signo), SUB

(restar sin acarreo), etc.

Instrucciones de Manejo de Bits: Realizan operaciones de desplazamiento,

rotación y lógicas sobre registros o posiciones de memoria, por ejemplo: AND (Y

lógico), NOT (NO lógico), OR (O lógico inclusivo), etc.

Instrucciones de Transferencia de Control: Sirven para controlar la secuencia de

ejecución de las instrucciones del programa, por ejemplo: CALL (llamar a un

procedimiento), JMP (bifurcación incondicional), LOOP (bucle hasta que se acabe

el contador), etc.

Instrucciones de Manejo de Cadenas (Strings): Realizan operaciones sobre series

de bytes o palabras, por ejemplo: CMPS (comparar cadenas), LODS (cargar

cadena), MOVS (mover cadena), etc.

Instrucciones de Interrupción: Provocan la interrupción del microprocesador para

que realice un servicio determinado, por ejemplo: INT (interrupción), IRET (retorno

de interrupción), etc.

Instrucciones de Control de Microprocesador: Activan y desactivan banderas y

cambian el estado de ejecución del micro, por ejemplo: CLC (borra bandera de

acarreo), HLT (parar el procesador), NOP (no operación), etc.

El total de instrucciones del microprocesador Intel 8088/8086 es de 92, éstas se

encuentran en todos sus sucesores, además de las nuevas instrucciones incorporadas a

cada micro (80286, 80386, etc. )

Cada instrucción del código de máquina es una secuencia de bits, la que para facilitar su

manejo es codificada en Lenguaje Ensamblador. Así como cada microprocesador tiene

su set de instrucciones (lenguaje de máquina), existe un Lenguaje Ensamblador para

cada microprocesador, por ejemplo Lenguaje Ensamblador para el 80286, Ensamblador

para el Pentium II, para el Pentium III, etc.

Ejemplo de instrucciones Ensamblador

Posición Código Ensamblador Comentario

Memoria Máquina

15FC:0100 B80500 MOV AX,0005 AX = 05h = 5d

15FC:0103 BB0200 MOV BX,0002 BX = 02h = 2d

15FC:0106 01D8 ADD AX,BX AX = AX + BX = 07h = 7d

15FC:0108 29D8 SUB AX,BX AX = AX - BX = 05h = 5d

15FC:010A B81300 MOV AX,0013 AX = 13h = 19d

15FC:010D B302 MOV BL,02 BL = 02h = 2d

15FC:010F F6F3 DIV BL Divide AX / BL

Cociente queda en AL = 09h = 9d

Resto queda en AH = 01h = 1d

Page 13: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 12

15FC:0111 B83412 MOV AX,1234 AX = 1234h = 4660d

15FC:0114 BB0200 MOV BX,0002 BX = 02h = 2d

15FC:0117 F7E3 MUL BX Multiplica AX * BX

Resultado queda en AX = 2468h = 9320d

15FC:0119 F7D0 NOT AX No lógico al AX

Antes del Not AX = 2468h = 9320d

Después del Not AX = DB97h= 56215d

15FC:011B EB04 JMP 0121 Salto incondicional a la posición 0121

15FC:011D B42C MOV AH,2C Función 2Ch de la Int 21

(Interrupción del DOS Obtener hora del

sistema)

15FC:011F CD21 INT 21 CH = hora( 0 a 23 )

CL = minutos ( 0 a 59 )

DH = segundos ( 0 a 59 )

DL = centésimas ( 0 a 99 )

15FC:0121 90 NOP No operación

Volcado de Memoria (Dump) - Programa cargado en memoria

Las líneas siguientes muestran el programa anterior como se vería en la memoria

principal de la computadora, cada Byte (representado por dos cifras hexadecimales),

corresponde a una posición de memoria, la secuencia de bits (0 y 1) correspondiente es

el programa en lenguaje de máquina. Recuerden que aunque, tanto las direcciones de

memoria como su contenido se expresan en hexadecimal, en realidad todo es manejado

por la máquina en binario.

15FC:0100 B8 05 00 BB 02 00 01 D8 - 29 D8 B8 13 00 B3 02 F6

15FC:0110 F3 B8 34 12 BB 02 00 F7 - E3 F7 D0 EB 04 B4 2C CD

15FC:0120 21 90

Ejecución paso a paso del programa y visualización de los registros del micro

Si se ejecutara paso a paso el programa (instrucción por instrucción), se obtendría el

siguiente estado de los registros internos del microprocesador. En cada paso se muestran

los registros con sus correspondientes valores, la dirección y la próxima instrucción a

ejecutarse (en código de máquina y en ensamblador).

MOV AX,0005

AX=0005 BX=0000 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=0103

15FC:0103 BB0200 MOV BX,0002

AX=0005 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=0106

15FC:0106 01D8 ADD AX,BX

AX=0007 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=0108

15FC:0108 29D8 SUB AX,BX

Responde: ¿por qué las posiciones de memoria van aumentando de esa forma?. ¿Por

qué se pasa de la dirección 15FC:0100 a la dirección 15FC:0103, de ahí a la

dirección 15FC:0106, luego a la dirección 15FC:0108, etc.?

Page 14: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 13

AX=0005 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=010A

15FC:010A B81300 MOV AX,0013

AX=0013 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=010D

15FC:010D B302 MOV BL,02

AX=0013 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=010F

15FC:010F F6F3 DIV BL

AX= 0109 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS= 15FC ES=15FC SS=15FC CS=15FC IP=0111

15FC:0111 B83412 MOV AX,1234

AX=1234 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=0114

15FC:0114 BB0200 MOV BX,0002

AX=1234 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=0117

15FC:0117 F7E3 MUL BX

AX=2468 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=0119

15FC:0119 F7D0 NOT AX

AX=DB97 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=011B

15FC:011B EB04 JMP 0121

AX= DB97 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=0121

15FC:0121 90 NOP

AX=DB97 BX=0002 CX=0022 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000

DS=15FC ES=15FC SS=15FC CS=15FC IP=0122 NV UP EI PL NZ NA PE NC

15FC:0122 ........

Responde: ¿Qué significa que los valores almacenados en los registros de

segmento (CS, SS, DS y ES) sean iguales?

Page 15: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 14

REPRESENTACIÓN DE DATOS

Hemos mencionado que la computadora y todos sus componentes manipulan

señales digitales binarias. Esto se debe a que son más sencillos de realizar los sistemas

digitales con componentes físicos con dos estados diferenciados. Por lo que el sistema

de numeración más utilizado para la realización de los sistemas digitales es el de base 2

(dos), o binario, en el cual existen solamente dos símbolos, que son el 0 y el 1.

Toda la información que la computadora procesa, almacena y transmite, debe

codificarse de algún modo a binario.

Caracteres ASCII

Además de representar valores numéricos, los bytes se usan para representar caracteres.

Cada byte puede representar 256 caracteres posibles:

* Los 128 primeros (0 a 127) son los caracteres ASCII standard.

* Los 128 últimos (128 a 255) son los caracteres ASCII extendidos para el IBM

PC.

El código ASCII (American Standard CodeforInformationInterchange o Código

Standard Americano para el Intercambio de Información) es un convenio adoptado para

asignar a cada caracter un valor numérico.

El código ASCII incluye:

* Letras mayúsculas y minúsculas.

* Dígitos decimales (0 al 9).

* Caracteres especiales como *, >, <, +, etc.

* Códigos de control (los 32 primeros, del 0 al 31), que tienen dos usos:

a) Por una parte, tienen el significado ASCII standard, es decir, códigos de

control de impresión y de comunicaciones, como 13 (retorno de carro), 12

(alimentación de página), etc.

b) Por otra parte, se utilizan para representar en pantalla caracteres especiales

(símbolos de los naipes, musicales, flechas, etc.).

Los caracteres ASCII extendidos incluyen:

*Símbolos para el dibujo de recuadros.

*Símbolos de relleno y sombreado.

*Letras griegas.

*Símbolos científicos.

*Caracteres especiales en idiomas distintos del Inglés.

SISTEMAS DE NUMERACIÓN

Nuestro sistema de numeración habitual, el que utilizamos en nuestra vida

cotidiana es el de base 10 (o decimal), en el cual existen diez símbolos distintos, del 0 al

9, es decir:

Sistema Decimal:

* La base del sistema es 10, por lo que existen 10 símbolos distintos para representar

todas las cantidades.

* Símbolos: 0, 1, 2, ........, 9

El sistema decimal es uno de los sistemas de numeración llamados “posicionales”,

porque el valor de cada símbolo depende de su posición relativa dentro del número.

Page 16: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 15

Es decir el “1” en el número 31 no tiene el mismo valor del “1” en el número 163,

porque la posición del “1” es distinta.

Por ejemplo, 31 en base 10 quiere decir:

31(10 = 3 x 101 + 1 x 10

0

Para indicar explícitamente que el número 31 está en base 10, lo representaremos así:

31(10 o 31d

El número 163(10 es igual a :

163(10 = 1 x 102 + 6 x 10

1 + 3 x 10

0

= 100 + 60 + 3

= 163(10

Esta forma de representar el número corresponde al denominado TEOREMA

FUNDAMENTAL DE LA NUMERACION

Es decir que de acuerdo a la posición que tiene el dígito en la cantidad, es la potencia

a la que debemos elevar la base, que en este caso es 10.

1 6 3(10

2 1 0

Numerando de derecha a izquierda los dígitos de un número, empezando con cero, el

valor de posición del dígito n es 10n.

La computadora está diseñada sobre la base del sistema de numeración binario (base 2).

Este es el sistema que utilizan internamente los circuitos digitales que conforman el

hardware de la computadora, por eso será el sistema al que prestaremos mayor atención

y estudio.

Por lo tanto:

* La base del sistema de numeración es 2, por lo que existen 2 dígitos para representar

todas las cantidades.

* Símbolos: 0, 1

Ejemplos de estos números serían 11100010101, 110010, etc.

Podría considerarse un número binario: 1201110110 ? Por qué?

También podemos expresar los números binarios haciendo uso del Teorema

Fundamental, nos sirve para relacionar una cantidad expresada en cualquier

sistema base b, con la misma cantidad expresada en el sistema decimal.

Page 17: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 16

Numerando de derecha a izquierda los dígitos de un número, empezando por cero, el

valor de posición es 2n.

Por ejemplo, 1101 en base 2 quiere decir:

1 1 0 1 (2 = 1 x 23 + 1 x 2

2 + 0 x 2

1 + 1 x 2

0

3 2 1 0 = 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1

= 8 + 4 + 0 + 1

= 13(10

Para indicar que el número 1101 está en base 2, lo representaremos como 1101(2

En general, el subíndice “(n” indica la base de numeración en que se representa un

número. Si no se indica, se supone que la base es 10.

Por su relación con la base 2 y la facilidad de conversión de una base a otra, es

importante conocer también otras bases de numeración como:

* La base 8 (octal), con los dígitos 0, 1, 2, 3, 4, 5, 6, y 7.

* La base 16 (hexadecimal), con los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D,

E y F. Los dígitos hexadecimales A al F se corresponden con los valores decimales 10

al 15.

Las bases 2, 8 y 16 son equivalentes en el sentido de que es inmediato pasar de una a

otra. Todo consiste en agrupar o desagrupar los dígitos binarios, y aplicar las tablas

siguientes:

Binario Octal

000 0

001 1

010 2 011 3

100 4

101 5 110 6

111 7

Vemos que con tres dígitos binarios es posible representar los 8 símbolos del sistema

octal, esto es porque:

8 = 23

De la misma manera se necesitarán 4 dígitos binarios para representar los 16 símbolos

del sistema hexadecimal:

16 = 24

El Teorema Fundamental de la Numeración dice que el valor decimal de una cantidad expresada

en otros sistemas de numeración, viene dado por la fórmula:

..... A4 A3 A2 A1 A0,A-1 A-2 A-3 A-4…… (b= ...A4 x b4 + A3 x b

3 + A2 x b

2 + A1 x b

1 + A0 x b

0 +

A-1 x b-1

+ A-2 x b-2

+ A-3 x b-3

+ A-4 x b-4

+……

siendo b la base en la que está el número, y los Ailos distintos símbolos.

Page 18: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 17

Binario Hexadecimal Decimal

0000 0

0001 1

0010 2 0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9 1010 A

1011 B

1100 C

1101 D

1110 E 1111 F

Por ejemplo, para pasar de base 2 a bases 8 y 16, se agrupan 3 y 4 dígitos binarios,

respectivamente, y se convierte a continuación cada grupo, de dígitos binarios al dígito

de la base correspondiente:

* Base 2 a base 8: 1101(2 = 001 101(2 = 15(8

Esto es así porque si nos fijamos en la tabla correspondiente tenemos:

001(2 = 1(8

101(2 = 5(8

Si tomamos el mismo número y lo queremos pasar a hexadecimal tendremos:

* Base 2 a base 16: 1101(2 = 1101(2 = D(16

1101(2 = D(16 fijándonos en la tabla.

A la inversa, si se dispone de la representación en base 8 o 16, para pasar a base 2 basta

convertir cada dígito en un cierto número de dígitos binarios (3 y 4, respectivamente),

fijándonos en las tablas de conversión correspondientes. Por ejemplo:

* Base 8 a base 2: 34(8 = 011 100(2 = 11100(2

* Base 16 a base 2: 56(16 = 0101 0110(2 = 1010110(2

La base 16 es muy utilizada para representar la información almacenada en la memoria

de la computadora, como también las direcciones de las posiciones de memoria.

Otras conversiones:

La tercera columna de la tabla corresponde a los números de nuestro sistema

decimal, ¿cómo tendrían que completarla?

Page 19: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 18

Para pasar de cualquier sistema a base 10 simplemente se forma el polinomio

equivalente resultado de la aplicación del Teorema Fundamental de la

Numeración.

Para pasar de base 2 a 8 y a 16, hemos visto que el pasaje es directo fijándonos en

las tablas correspondientes.

Sólo nos queda contemplar el caso de pasaje de un número expresado en una base 10,

por ejemplo a base 2, y en general de base 10 a cualquier base se realizan divisiones

sucesivas. Es decir que:

Si se divide un número expresado en base 10 por la base b, y el cociente se vuelve

a dividir por b y así sucesivamente, el cociente y los restos obtenidos (*) forman el

número en el sistema de base b.

Por ejemplo para pasar el número 13(10 a binario:

13 2

1 6 2

0 3 2 13(10 = 1101(2

1

(*)

Suma de números binarios

Las tablas de sumar son las siguientes:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10 (0 con acarreo 1)

1 0 0 1 0 0

+ 1 0 0 1 0

1 1 0 1 1 0

1 1 1 (acarreos)

1 1 0 0 1

+ 1 0 0 1 1

1 0 1 1 0 0

Suma de números hexadecimales

1 1

F en nuestro sistema 9

+ 1 decimal: + 1

1 0 1 0

1

Page 20: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 19

Así tendríamos por ejemplo:

1 1 (acarreos)

1 8 C D

+ 0 2 6 C

1 B 3 9

UNIDADES DE MEDIDA

BIT:

La memoria de la computadora se compone de unidades de almacenamiento llamadas

bits, que tienen dos estados posibles (representados por 0 y 1), es decir, sirven para

almacenar información expresada en binario. La palabra bit es la contracción de

binarydigit (dígito binario). Así pues, todo lo que reside en la memoria de la

computadora (el código de las instrucciones y los datos) son números binarios en bits de

la memoria, a razón de un dígito binario por bit.

BYTE:

Los bits de la memoria se agrupan en bytes u octetos, a razón de 8 bits por byte. Un byte

es realmente la unidad de direccionamiento, es decir, podemos referirnos a cada byte

mediante un número que es su dirección. Los bytes de la memoria se numeran así: el

primer byte es el 0, el segundo es el 1, etc.

La cantidad de memoria de una computadora se medía en un principio en Kilobytes (en

abreviatura, Kbyte, Kb, o simplemente K), siendo:

1 Kbyte = 1 Kb = 1024 bytes = 210

bytes

Por ejemplo, una computadora con 256 Kb tenía 256 x 1024 bytes.

Cantidades mayores de bytes requieren que se usen los llamados MegaBytes y

GigaBytes.

1 MegaByte = 1 MB = 1024 KiloBytes = 220

bytes

Capacidades comunes de memoria principal en nuestros días, son 4 GB, 6 GB, 8 GB,

las que pueden ampliarse si el usuario así lo requiere.

1 GigaByte = 1GB = 1024 MegaBytes = 230

bytes

En el caso de los medios de almacenamiento permanente de datos, podemos hablar de

TeraBytes:

1 TeraByte = 1TB = 1024 GigaBytes = 240

bytes

Un byte puede almacenar, pues, 8 dígitos binarios, es decir, 2 dígitos hexadecimales. El

número de valores posibles que se pueden almacenar es 28 = 256. Las configuraciones

posibles dentro de un byte serían:

0000 0000 = 0

0000 0001 = 1

...........................

1111 1110 = 254

Page 21: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 20

1111 1111 = 255 (28 - 1)

Los bits de un byte se numeran de derecha a izquierda del 0 al 7, es decir, se

corresponden con los exponentes de las potencias de base 2.

NIBBLE:

La agrupación de 4 bits (superiores o inferiores) de un byte se llama nibble. Por tanto,

un byte contiene 2 nibbles. El que corresponde a los bits 0 a 3 se llama nibble inferior, y

el de los bits 4 a 7 se llama nibble superior:

7 6 5 4 3 2 1 0 bits

nibblenibble

superior inferior

El nibble es una unidad de trabajo mucho más cómoda que el bit. En cada nibble se

almacena un dígito hexadecimal. Los 16 valores posibles de un nibble son:

Binario Hexadecimal Binario Hexadecimal

0000 0 1000 8

0001 1 1001 9

0010 2 1010 A

0011 3 1011 B

0100 4 1100 C

0101 5 1101 D

0110 6 1110 E

0111 7 1111 F

El número de configuraciones posibles de nibbles en un byte es de 162 = 256. Las

configuraciones posibles son:

00h = 0

01h = 1

...............

FEh = 254

FFh = 255 (162 -1)

Agrupaciones superiores al byte

Las agrupaciones superiores al byte son las siguientes:

Tipo Definición

Palabra 2 bytes contiguos

Doble Palabra 2 palabras contiguas

Cuádruple Palabra 4 palabras contiguas

Párrafo 16 bytes

Página 256 bytes

Segmento 64 Kbytes (64 KiloBytes)

Page 22: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 21

EJERCICIOS

Cambios de base

Ejercicio n° 1) Convertir los siguientes números en base 2 a números de base 10:

a) (1001001)2; b) (11100111)2; c) (101010101)2; d) (11001100110011) 2

Ejercicio n° 2) Convertir los siguientes números en base 10 a números de base 2:

a) (534)10; b) (232)10; c) (337)10; d) (725)10

Ejercicio n° 3) Convertir los siguientes números en base 2 a números de base 8:

a) (1001001)2; b) (11100111)2; c) (101010101)2; d) (11001100110011) 2

Ejercicio n° 4) Convertir los siguientes números en base 2 a números de base 16:

a) (1001001)2; b) (11100111)2; c) (101010101)2; d) (11001100110011) 2

Ejercicio n° 5) Convertir los siguientes números en base 8 a números de base 2:

a) (7334)8; b) (234)8; c) (7765)8; d) (1454)8

Ejercicio n° 6) Convertir los siguientes números en base 16 a números de base 2:

a) (A1093)16; b) (BC432)16; c) (9754D)16; d) (38A9D)8

Representación de Caracteres

Ejercicio n° 7) Descifre el siguiente código ASCII: 1001010 1001111 1001000 1001110

0100000 1000100 1001111 1000101

Ejercicio n° 8) Escriba su propio nombre en código ASCII

Ejercicio n° 9) Escriba los siguientes números decimales en BCD:

a) 538; b) 1754; c) 54216; d)25469

Page 23: NOTAS DE CÁTEDRA ARQUITECTURA DEL PROCESADOR I

U.N.Ca. Fa.C.E.y N. Tecnicatura en Informática 2014

Ing. Georgina Inés Cerúsico de Tognola Arquitectura del Procesador I Pág. 22

BIBLIOGRAFÍA

- Patterson, David A. y Hennessy, John L. Estructura y diseño de computadores. La

interfaz hardware / software. Ed. Reverte. 2011.

- Rodríguez Roselló, Miguel Angel. Programación Ensamblador en entorno MS-DOS.

Anaya Multimedia. 1988.

- Mano, M. Morris. Arquitectura de Computadoras. Tercera Edición. Prentice-Hall

Hispanoamericana. 1995.

- Stallings. W. Organización y Arquitectura de Computadores. 5ª Edicion. Prentice Hall

2000.

- Santamaría, Pablo. Representación de los números en la computadora. Facultad de

Ciencias Astronómicas y Geofísicas. Universidad Nacional de la Plata. 2009.

Disponible en: http://www.famaf.unc.edu.ar/~vmarconi/fiscomp/representacion-

numeros.pdf

- Cerúsico, Georgina Inés. Arquitectura del Procesador I. Notas de Cátedra. Universidad

Nacional de Catamarca. 2014.

- Hennessy, .John L. y Patterson, David A. Computer Architecture: A Quantitative

Approach. Ed. Morgan Kaufman . 2001.

- Wilkinson, Barry. Computer Architecture: Design And Performance. Prentice Hall

International. 2ª Edition. 1996.

- Brookshear, J. Glenn. Introducción a las Ciencias de la Computación. Cuarta Edición.

Addison-Wesley Iberoamericana. 1995.

- Tischer, Michael. Jennrich, Bruno. PC Interno Programación de sistema. Marcombo.

1996.