MÉRIDA
MÉRIDA CORTES CORTES SERGIO SERGIO JAIR JAIR 1!1"#$%1!1"#$% D
DE E LLA A CCRRUUZ Z CCUUEETTO O AA&&RRAAHHAAM M 11!!11""##%% M
MOOLLIINNA A HHEERRRREERRA A EEDDUUAARRDDO O 11!!11""##$$##
'TAPACHULA CHIAPAS( MÉ)ICO A 1$ DE OCTU&RE DEL *"1!' 'TAPACHULA CHIAPAS( MÉ)ICO A 1$ DE OCTU&RE DEL *"1!'
“PERIODO: AGOSTO'DICIEM&RE *"1!” “PERIODO: AGOSTO'DICIEM&RE *"1!”
Índice
Índice
Introducción...3 Introducción...3NST TUTO TECNOLÓG CO DE TAPACHULA NST TUTO TECNOLÓG CO DE TAPACHULA
DEPARTAMENTO DE S STEMAS Y COORD NAC ÓN DEPARTAMENTO DE S STEMAS Y COORD NAC ÓN
DOCENTE:
DOCENTE: ING. ROSEL MUÑOZ LÓPEZ. ING. ROSEL MUÑOZ LÓPEZ.
MATER A:
MATER A: ARQUITECTURA DE COMPUTADORAS ARQUITECTURA DE COMPUTADORAS
UN UN DA DA
“ESTRUCTURA Y
“ESTRUCTURA Y FUNC FUNC ONAM ONAM ENTO DE ENTO DE LA CPLA CPU”U”
ALUMNOS:
2.1.- Organización del procesador...4
2.1.- Organización del procesador...4
Figura 1: visión simplifcada de un procesador... Figura 1: visión simplifcada de un procesador... 2.2. !structura de registros..."
2.2. !structura de registros..."
Figura Figura 2: #lasifca2: #lasifcación de ción de los registlos registros de ros de la la #$%...#$%...&...& Figura 3: puntero de Figura 3: puntero de Instrucción...Instrucción...11...11
2.2.1. 'egistros visi(les para el usuario...12
2.2.1. 'egistros visi(les para el usuario...12
Figura 4: 'egistros de uso general...13
Figura 4: 'egistros de uso general...13
2.2.2. 'egistros de #ontrol ) de 2.2.2. 'egistros de #ontrol ) de !stado...!stado...1*...1*
Figura *: indicadores de la +,%...1
Figura *: indicadores de la +,%...1
2.2.3.- !emp 2.2.3.- !emplos de organización dlos de organización de registros de #$% e registros de #$% reales.reales. 1"1" ,as Figuras : a/ ) (/... ,as Figuras : a/ ) (/...1010 !n la Figura : c/...10
!n la Figura : c/...10
2.3. !l ciclo de instrucción... 2.3. !l ciclo de instrucción...1&1& Figura ". #iclo de Instrucción...2
Figura ". #iclo de Instrucción...2
Figura 0. Figura 0. sueda...sueda...22 2.3.1 ciclo 5etc6-decode-e7ecute...22
2.3.1 ciclo 5etc6-decode-e7ecute...22
Figura &. #iclo 5etc6-decode-e7ecute...23
Figura &. #iclo 5etc6-decode-e7ecute...23
2.3.2. 8egmentació 2.3.2. 8egmentación de instrucciones...n de instrucciones...2424 Figura 1.- segmentación de Figura 1.- segmentación de instrucciones...instrucciones...24...24
2.3.3.- #onunto de in 2.3.3.- #onunto de instrucciones: #aracter9sticastrucciones: #aracter9sticas ) s ) FuncFuncionesiones ...2*
...2*
2.3.4.- odos de direccionamiento ) 5ormatos...2" 2.3.4.- odos de direccionamiento ) 5ormatos...2" 2.4.- #asos de estudios de #$% reales... 2.4.- #asos de estudios de #$% reales...3131 Figura 11: +ruitectura de los 'egistros...32
Figura 11: +ruitectura de los 'egistros...32
#onclusión...34 #onclusión...34 i(liogra59a...3* i(liogra59a...3*
Introducción
Introducción
En su forma más simple, un sistema de computadora cuenta con una En su forma más simple, un sistema de computadora cuenta con una un
unididad ad quque e ejejececututa a ininststruruccccioionenes s de de prprogograramamas. s. EsEsta ta ununididad ad sese comunica con otros subsistemas dentro de la computadora, y a menudo comunica con otros subsistemas dentro de la computadora, y a menudo controla su operación. Debido al papel central de tal unidad se conoce controla su operación. Debido al papel central de tal unidad se conoce co
como mo ununididad ad cecentntraral l de de prprococesaesamimienentoto, , o o CPCPUU #entral processing#entral processing unit/.
unit/. DenDentrtro o de de mumuchchas as cocompumputatadodoraras, s, un un susubsbsisistetema ma cocomo mo ununaa unidad de entrada, o un dispositio de almacenamiento masio, puede unidad de entrada, o un dispositio de almacenamiento masio, puede in
inccororpoporarar r ununa a ununiidadad d de de prprococesesamamieientnto o prproopipia. a. !!al al ununiidadad d dede procesamiento, aunque es central para su propio subsistema, resulta procesamiento, aunque es central para su propio subsistema, resulta cl
clararo o quque e no no es es "c"cenentrtralal" " papara ra el el sisiststemema a de de cocompmpututadadorora a en en susu conjunto. #in embargo, los principios del dise$o y operación de una CPU conjunto. #in embargo, los principios del dise$o y operación de una CPU son independi
son independientes de entes de su posición en su posición en un sistema de un sistema de computcomputadora. Esteadora. Este trabajo estará dedicado a la organi%ación del hard&are que permite a trabajo estará dedicado a la organi%ación del hard&are que permite a un
una a CPCPU U rerealali%i%ar ar su su fufuncncióión n prprinincicipalpal' ' trtraer aer ininststruruccccioiones nes desdesde de lala memoria y ejecutarlas.
memoria y ejecutarlas.
De
De igiguaual l mmananerera a en en esestte e dodocucumementnto o se se eerárá( ( )a )a seseccueuencncia ia dede instrucciones resultante es un programa en lenguaje de máquina que instrucciones resultante es un programa en lenguaje de máquina que representa al algoritmo en cuestión. El mismo enfoque general se utili%a representa al algoritmo en cuestión. El mismo enfoque general se utili%a par
para a perpermitmitir ir a a la la comcomputputadoadora ra rerealiali%ar %ar funfunciociones nes espespecieci*ca*cadas das porpor in
inststruruccccioionenes s inindidiiidudualales es de de mámáququinina. a. EsEsto to eses, , cacada da ununa a de de esestatass instrucciones se ejecuta reali%ando una secuencia de operaciones más instrucciones se ejecuta reali%ando una secuencia de operaciones más ru
rudidimementntarariaias. s. EsEstatas s opopereracacioionenes, s, y y lolos s memedidios os popor r lolos s cucualales es sese generan, serán el tema principal de análisis en este trabajo.
generan, serán el tema principal de análisis en este trabajo.
2.1.- Organización del procesador
2.1.- Organización del procesador
)a)a UnUnididad ad de de PrPrococesaesamimientento o +C+CPUPU cocontntrorola la el el fufuncncioionanamimienento to deldel computador y llea a cabo sus funciones de procesamiento de datos. computador y llea a cabo sus funciones de procesamiento de datos. -recuentemente se le llama procesador. Un procesador, incluye tanto -recuentemente se le llama procesador. Un procesador, incluye tanto registros isibles por el usuario como registros de controlestado. )os registros isibles por el usuario como registros de controlestado. )os registros isibles por el usuario pueden ser de uso general o tener una registros isibles por el usuario pueden ser de uso general o tener una utilidad especial, mientras que los registros de control y estado se usan utilidad especial, mientras que los registros de control y estado se usan para controlar el funcionamiento del procesador, un claro ejemplo es el para controlar el funcionamiento del procesador, un claro ejemplo es el contador de programa.
contador de programa.
)lea a cabo una gran ariedad de' )lea a cabo una gran ariedad de'
// CoCompmpararacacioionenes nums num0r0ricicasas
// !!ranransfsfererencenciaias s de datode datos s cocomo resmo respupuestesta a a a lalas s pepetiticicionones es de losde los programas que están siendo ejecutados en memoria.
programas que están siendo ejecutados en memoria. )a
)a CPCPU U cocontrntrolola a lalas s opopereracacioiones nes bábásisicacas s del del orordedenadnador or eneniianando do yy recibiendo se$ales de control, direcciones de memoria y datos de un recibiendo se$ales de control, direcciones de memoria y datos de un lu
lugagar r a a ototrro o de de la la cocompmpututadadorora a a a trtraa0s 0s de de un un grgrupupo o de de cacananaleless llamados 1U#.
llamados 1U#.
)a Unidad Central de Proceso está constituida internamente por' )a Unidad Central de Proceso está constituida internamente por'
// ))a Ua Uninidadad dd de Ce Conontrtrolol // UnUnididad ad 2r2rititm0m0titico3co3)ó)ógigicaca %nidad +ritm;tico-,ógica +,%/ %nidad +ritm;tico-,ógica +,%/ 4
4ececibibe e lolos s dadatotos s sosobrbre e lolos s quque e efefecect5t5a a opopereracacioionenes s de de cácálclcululo o yy comparaciones. !oma decisiones lógicas +determina si una a*rmación es comparaciones. !oma decisiones lógicas +determina si una a*rmación es correcta o falsa mediante reglas del algebra de 1oole y deuele luego correcta o falsa mediante reglas del algebra de 1oole y deuele luego el resultado. !
el resultado. !odo ello bajo odo ello bajo superisión de la superisión de la unidad de control.unidad de control. ,a %nidad de #ontrol
,a %nidad de #ontrol
)a unidad de control le indica al resto del sistema como llear a cabo las )a unidad de control le indica al resto del sistema como llear a cabo las instrucciones de un programa. Comanda
instrucciones de un programa. Comanda las se$ales electrónicas entre lalas se$ales electrónicas entre la memoria y la unidad aritm0tico3lógica, y entre el CPU y los dispositios memoria y la unidad aritm0tico3lógica, y entre el CPU y los dispositios de entrada y salida. Para ejecutar cualquier programa, cada comando de entrada y salida. Para ejecutar cualquier programa, cada comando del mismo se desglosa en instrucciones.
del mismo se desglosa en instrucciones.
)os procesadores utili%an la segmentación de instrucciones para
)os procesadores utili%an la segmentación de instrucciones para aceleraracelerar la ejecución. )a segmentación de cauce se puede diidir en ciclo de la ejecución. )a segmentación de cauce se puede diidir en ciclo de instrucción en arias etapas separadas que operan secuencialmente, instrucción en arias etapas separadas que operan secuencialmente, tales como la captación de instrucción, decodi*cación de instrucción, tales como la captación de instrucción, decodi*cación de instrucción, cá
cálclcululo o de de didirrececcicionones es de de opopereranandodo, , ejejececucucióión n de de ininststruruccccióión n yy estructura del operando resultado.
estructura del operando resultado. 2 continuación se muestra cómo se
2 continuación se muestra cómo se organi%a un procesador, para esto seorgani%a un procesador, para esto se tiene que considerar los siguientes requisitos'
tiene que considerar los siguientes requisitos'
Captar instrucciones:
Captar instrucciones: el procesador lee una instrucción de memoria el procesador lee una instrucción de memoria
+registro, cache o memoria pr
+registro, cache o memoria principal.incipal.
Interpretar instrucción:
Interpretar instrucción: la instrucción se codi*ca para determinar qu0 la instrucción se codi*ca para determinar qu0
acción es necesario. acción es necesario.
Captar datos:
Captar datos: la ejecución de una instrucción puede e6igir leer datos la ejecución de una instrucción puede e6igir leer datos de memoria o de un módulo de E#.
Procesar datos:
Procesar datos: la ejecución de una instrucción puede e6igir llear a la ejecución de una instrucción puede e6igir llear a
cabo alguna operación aritm0tica o lógica con los datos. cabo alguna operación aritm0tica o lógica con los datos.
Escribir datos:
Escribir datos: los resultados de una ejecución pueden e6igir escribir los resultados de una ejecución pueden e6igir escribir
datos en la memoria o en el módulo de E#. datos en la memoria o en el módulo de E#. Pa
Para ra hacer estas hacer estas cosas, el cosas, el procprocesador necesita almacenar instruccesador necesita almacenar instruccionesiones y datos temporalmente mientras una instrucción está ejecutándose, en y datos temporalmente mientras una instrucción está ejecutándose, en otras palabras el procesador necesita una peque$a memoria interna, otras palabras el procesador necesita una peque$a memoria interna, tambi0n llamados registros.
tambi0n llamados registros.
En esta *gura se muestra una isión simpli*cada de un procesador, que En esta *gura se muestra una isión simpli*cada de un procesador, que indica su cone6ión con el resto de sistema, a tra0s del bus del sistema. indica su cone6ión con el resto de sistema, a tra0s del bus del sistema. )a 2)U llea a cabo el erdadero cálculo o procesamiento de datos.
)a 2)U llea a cabo el erdadero cálculo o procesamiento de datos.
)a unidad de control controla la transferencia de datos e instrucciones )a unidad de control controla la transferencia de datos e instrucciones as7 a dentro y as7 afuera
as7 a dentro y as7 afuera del procesador, y el funcionamiento de la del procesador, y el funcionamiento de la 2)U.2)U. 2demás la *gura muestra una memoria interna m7nima, que consta de 2demás la *gura muestra una memoria interna m7nima, que consta de un conjunto de posiciones de almacenamiento llamadas registros.
Figura 1: visión simplifcada de un procesador
Figura 1: visión simplifcada de un procesador
En esta *gura se indican los caminos de transferencia de datos y de la En esta *gura se indican los caminos de transferencia de datos y de la lógica de control, que incluye un elemento con el rotulo bus interno del lógica de control, que incluye un elemento con el rotulo bus interno del procesador. !ambi0n se muestran los elementos básicos t7picos de la procesador. !ambi0n se muestran los elementos básicos t7picos de la 2)U.
2)U.
8ay que obserar la similitud entre la estructura interna del computador 8ay que obserar la similitud entre la estructura interna del computador en su totalidad y la estructura interna del procesador. En ambos casos en su totalidad y la estructura interna del procesador. En ambos casos hay
hay una una peqpeque$a ue$a colcoleccección ión de de eleelementmentos os priprincincipalpales es +co+compumputadtador'or' procesador, E#, memoria( procesador' unidad de control, 2)U, registros procesador, E#, memoria( procesador' unidad de control, 2)U, registros conectados por caminos de datos.
conectados por caminos de datos.
2.2. !structura de registros
2.2. !structura de registros
<=u; son los registros del #$%>#e
#e ememplplean ean papara ra cocontntrorolalar r lalas s ininststruruccccioiones nes en en ejejececucucióión, n, manmanejejarar direccionamiento de memoria y propiciar la capacidad aritm0tica.
direccionamiento de memoria y propiciar la capacidad aritm0tica. ,os registros vienen de tres tipos:
,os registros vienen de tres tipos: datos, direcciones e 7ndice, quedatos, direcciones e 7ndice, que tiene lugar en casi todos los aspectos de la operación del CPU. El tama$o tiene lugar en casi todos los aspectos de la operación del CPU. El tama$o de un registro depende del CPU( los más simples tienen registros que de un registro depende del CPU( los más simples tienen registros que aceptan 9 o :; bits de datos y los más complejos tienen registros de <=, aceptan 9 o :; bits de datos y los más complejos tienen registros de <=, >9 o ;> bits.
>9 o ;> bits.
#lasifcación de los 'egistros #lasifcación de los 'egistros 'egistro de datos:
'egistro de datos: Un CPU puede funcionar con datos en uno de tres Un CPU puede funcionar con datos en uno de tres modos' entre dos registros, entre registros y una ubicación de ?emoria modos' entre dos registros, entre registros y una ubicación de ?emoria de
de acacceceso so al al a%a%ar ar +4+422? ? 3 3 44anandodom3m322ccccesess s ?e?emomoryry y y eentntrre e dodoss ub
ubicicacacioiones nes 442?2?. . CoComo mo el el CPCPU U esestá tá coconecnectatado do didirerectctamamentente e a a loloss re
regigistrstros, os, lalas s opoperaeracicionones es quque e imimplplicican an dodos s reregigiststroros s soson n lalas s mámáss rápida
rápidas( las que se dan entre ubics( las que se dan entre ubicacionaciones 42? son las más lentes 42? son las más lentas. as. EsEs decir, junta dos registros, a$ade un registro a una ubicación 42?, o decir, junta dos registros, a$ade un registro a una ubicación 42?, o a$ade dos ubicaciones 42?.
a$ade dos ubicaciones 42?. 'eg
'egististro ro de de dirdirecceccioniones:es: PParara a quque e un un CPCPU U pupuededa a alalmmacacenenar ar yy recuperar datos en 42?, debe tener la dirección de la memoria de la recuperar datos en 42?, debe tener la dirección de la memoria de la inf
inforormacmaciónión. . Esas Esas opeoperacracioniones es que que impimpliclican an 442? 2? usausan n reregisgistrtros os dede dirección de memoria. E) CPU no reali%a aritm0tica en
dirección de memoria. E) CPU no reali%a aritm0tica en estos registros( enestos registros( en cambio, los usa para ubicar datos que necesita.
cambio, los usa para ubicar datos que necesita. 'egistro de 9ndice:
'egistro de 9ndice: Un CPU no puede hacer matemáticas en registros Un CPU no puede hacer matemáticas en registros de
de datdatosos, , aunaunquque e pupuedede e hachacerlerlo o inindidirerectctamamentente e cocon n un un reregigiststro ro dede 7n
7ndidicece. . @s@ste te trtrababajaja a cocon n lolos s rregegisistrtros os de de dadatotos, s, peperrmimititienendo do a a unun programa procesar hilos de información e*ca%mente.
programa procesar hilos de información e*ca%mente. 'egistros de segmento:
'egistros de segmento: Un registro de segmento tiene :; bits de Un registro de segmento tiene :; bits de longitud y facilita un área de memoria para direccionamiento conocida longitud y facilita un área de memoria para direccionamiento conocida como segmento actual.
como segmento actual. 'egistro #s:
'egistro #s: el el dodos s alalmamacecena na la la didirrececcición ón ininiciciaial l del del sesegmgmentento o dede código de un programa en el registro C#. Andica la dirección de una código de un programa en el registro C#. Andica la dirección de una instrucción que es buscada para su ejecución.
instrucción que es buscada para su ejecución. 'egistro ?s:
'egistro ?s: genera una referencia a la localidad de un byte espec7*co genera una referencia a la localidad de un byte espec7*co en el segmento de datos.
en el segmento de datos. 'egis
'egistro tro 8888:: perpermimite te la la cocololocacacición ón en en mememomoriria a de de ununa a pipilala, , paparara almacenamiento temporal de dirección y datos.
'egis
'egistro tro !8:!8: se se ututilili%i%a a papara ra alalgugunanas s opoperaeracicionones es cocon n cacadendenas as dede caracteres se utili%a para el manejo
caracteres se utili%a para el manejo de direccionamiento de memoria.de direccionamiento de memoria. 'egistros de propósito general:
'egistros de propósito general: )os registros de propósito general )os registros de propósito general son el 2B, 1B, CB, y DB, de :; bits. Cada uno de ellos se diide en dos son el 2B, 1B, CB, y DB, de :; bits. Cada uno de ellos se diide en dos registros de 9 bits, llamados 28 y 2), 18 y 1), C8 y C), y, D8 y D), 8 registros de 9 bits, llamados 28 y 2), 18 y 1), C8 y C), y, D8 y D), 8 signi*cando 8igh +alto y ) signi*cando )o& +bajo, indicando la parte signi*cando 8igh +alto y ) signi*cando )o& +bajo, indicando la parte alta o la parte baja
alta o la parte baja del registro correspondiente de :; bits.del registro correspondiente de :; bits. 'egistro +@:
'egistro +@: El registro 2B es el registro acumulador, es utili%ado para El registro 2B es el registro acumulador, es utili%ado para oper
operaciacioneones s que que impimpliclican an ententradradasasalialida, da, y y mulmultiptipliclicaciación ón y y didiisiisiónón +estas dos 5ltimas en conjunto con el registro DB.
+estas dos 5ltimas en conjunto con el registro DB. 'egistro @:
'egistro @: El registro 1B es el registro base, y es el 5nico registro de El registro 1B es el registro base, y es el 5nico registro de pr
propopósósitito o gengenereral al quque e pupuede ede seser r un un 7n7ndidice ce parpara a didirrececciciononamamieientntoo inde6ado.
inde6ado.
'egistro #@:
'egistro #@: El registro CB es conocido como el registro contador. El registro CB es conocido como el registro contador. Puede contener un alor para controlar el n5mero de eces que un ciclo Puede contener un alor para controlar el n5mero de eces que un ciclo se repite o un alor para corrimiento de bits.
se repite o un alor para corrimiento de bits. 'eg
'egististro ro ?@?@:: El El rregegisistrtro o DB DB es es el el rregegisistrtro o de de dadatotos. s. En En alalgugunanass operaciones se indica mediante este registro el n5mero de puerto de operaciones se indica mediante este registro el n5mero de puerto de entradasalida, y en las operaciones de multiplicación y diisión de :; entradasalida, y en las operaciones de multiplicación y diisión de :; bits se utili%a junto con el acumulador 2B.
bits se utili%a junto con el acumulador 2B. 'egistros de apuntadores:
'egistros de apuntadores: )os registros #P +apuntador de pila y 1P )os registros #P +apuntador de pila y 1P +a
+apupuntntadoador r babase se estestán án asasocociaiadodos s cocon n el el reregigistrstro o ## ## y y perpermimiteten n alal sistema acceder a datos en el segmento de la pila.
sistema acceder a datos en el segmento de la pila. 4
4egegisistrtro o #P#P' ' El El apapununtatadodor r de de pipila la de de :; :; bibits ts esestá tá asasocociaiado do cocon n elel segmento ## y proporciona un alor de despla%amiento que se re*ere a segmento ## y proporciona un alor de despla%amiento que se re*ere a la palabra actual que está siendo procesada en la pila.
la palabra actual que está siendo procesada en la pila. 'egistro $:
'egistro $: El apuntador base de :; bits facilita la referencia de El apuntador base de :; bits facilita la referencia de parámetros dentro de la pila.
Figura 2:
Figura 2:
#lasifcación d
#lasifcación d
e los
e los
registros de
registros de
la
la
#$%
#$%
'egistros de (anderas:'egistros de (anderas: Es Es un registrun registro de o de :; bits, de :; bits, de los cuales nueelos cuales nuee siren para indicar el estado actual de la máquina y el resultado del siren para indicar el estado actual de la máquina y el resultado del procesamiento.
procesamiento.
,os (its de las (anderas son las siguientes: ,os (its de las (anderas son las siguientes:
OF
OF overAoBoverAoBC C des(ordamientodes(ordamiento/:/: Andica desbordamiento del bitAndica desbordamiento del bit de mayor orden
co
con n sisigngno o +:+:ee6i6istste e ooereroo&( &( no no e6e6isiste te ooereroo&&. . PPararaa operaciones sin signo, no se toma en cuenta esta bandera.
operaciones sin signo, no se toma en cuenta esta bandera. ?F
?F ddirirececciciónón/:/: CCoonnttrroolla a lla a sselelececcciióón n dde e iinnccrrememeenntto o oo de
decrcrememenento to de de lolos s rregegisistrtros os #A #A y y DA DA en en lalas s opopereracacioionenes s coconn ccaaddeennaas s dde e ccaarraacctteerrees s ++::ddeeccrreemmeenntto o aauuttoommááttiiccoo(( incremento. )a bandera D- se controla con las instrucciones incremento. )a bandera D- se controla con las instrucciones #!D y C)D.
#!D y C)D. IF
IF inteinterruprrupción/ción/:: CoContntrorola la el el didispspararo o de de lalas s ininterterrurupcipciononeses +:habilita las interrupciones( deshabilita las interrupciones. +:habilita las interrupciones( deshabilita las interrupciones. )a interrupción no enmascarable es la 5nica que no puede ser )a interrupción no enmascarable es la 5nica que no puede ser bloqueada por esta bandera. El estado de la bandera A- se controla bloqueada por esta bandera. El estado de la bandera A- se controla con las instrucciones #!A y C)A.
con las instrucciones #!A y C)A. DF trampa/:
DF trampa/: Permite la operación del procesador en modo dePermite la operación del procesador en modo de depuración +paso a paso.
depuración +paso a paso. 8F
8F ssignigno/:o/: CoContntieiene ne el el sisigngno o rresesulultatantnte e de de ununa a opopereracacióiónn aritm0tica +positio( :negatio.
aritm0tica +positio( :negatio. EF cero/:
EF cero/: Andica el resultado de una operación aritm0tica o deAndica el resultado de una operación aritm0tica o de comparación +resultado diferente de cero( :resultado igual a comparación +resultado diferente de cero( :resultado igual a cero.
cero.
+F acarreo au7iliar
+F acarreo au7iliar' Contiene el acarreo del bit <. Esta bandera' Contiene el acarreo del bit <. Esta bandera se prueba con las instrucciones D22 y D2# para ajustar el alor de se prueba con las instrucciones D22 y D2# para ajustar el alor de 2) despu0s de una s
2) despu0s de una suma o resta 1CD.uma o resta 1CD. $F
$F parparidad/idad/:: Andica si el n5mero de bits :, del byte menosAndica si el n5mero de bits :, del byte menos signi*catios de una operación, es par +n5mero de bits : es signi*catios de una operación, es par +n5mero de bits : es impar( :n5mero de bits : es par.
impar( :n5mero de bits : es par. #F acarreo/:
#F acarreo/: Contiene el acarreo del bit de mayor orden despu0sContiene el acarreo del bit de mayor orden despu0s de una operación aritm0tica( tambi0n almacena el contenido del de una operación aritm0tica( tambi0n almacena el contenido del 5ltimo bit en una operación de
5ltimo bit en una operación de despla%amiento o de rotación.despla%amiento o de rotación. 'eg
'egististro ro de de punpunterteros os de de insinstrutrucccciónión:: EEl l rregegisistrtro o AP AP de de :; :; bibittss conti
contiene el ene el despldespla%amiena%amiento to de de dirdireccióección n de de la la siguisiguiente instruccente instrucción queión que se ejecuta. El AP está asociado con el registro C# en el sentido de que el se ejecuta. El AP está asociado con el registro C# en el sentido de que el AP indica la instrucción actual dentro del segmento de código que se está AP indica la instrucción actual dentro del segmento de código que se está ejecutando actualmente en la memoria.
Figura 3: puntero de Instrucción
Figura 3: puntero de Instrucción
Un computador emplea una jerarqu7a de memoria. En los nieles más Un computador emplea una jerarqu7a de memoria. En los nieles más altos de la jerarqu7a, la memoria es más rápida, más peque$a y más altos de la jerarqu7a, la memoria es más rápida, más peque$a y más cara +por bit. Dentro de la CPU hay un conjunto de registros que cara +por bit. Dentro de la CPU hay un conjunto de registros que funciona como un niel de memoria, por encima de la memoria principal funciona como un niel de memoria, por encima de la memoria principal y de la cach0 en
y de la cach0 en la jerarqu7a. )os registros de la CPU son de dos la jerarqu7a. )os registros de la CPU son de dos tipos'tipos' •
• 'egistros visi(les para el usuario:'egistros visi(les para el usuario: Permiten al programador de Permiten al programador de len
lenguajguaje e máqmáquinuina a o o ensensamblambladorador, , minminimiimi%ar %ar las las rereferferencencias ias aa memoria principal cuando optimi%a el uso de
memoria principal cuando optimi%a el uso de registros.registros. •
• 'egistros de control ) de estado:'egistros de control ) de estado: #on utili%ados por la unidad #on utili%ados por la unidad de
de cocontntrorol l papara ra cocontrntrololar ar el el fufuncncioionamnamieientnto o de de la la CPCPU, U, y y porpor pr
progrogramas amas pripriililegiegiados ados del del sissistemtema a opeoperatratio io para para concontrtrolaolar r lala ejecución de programas. Fo hay una separación bien de*nida de ejecución de programas. Fo hay una separación bien de*nida de registros dentro de estas dos categor7as. Por ejemplo, en algunas registros dentro de estas dos categor7as. Por ejemplo, en algunas máquinas el contador de programa es isible para el usuario +por máquinas el contador de programa es isible para el usuario +por ejemplo, en el G2B, pero en muchas no lo es.
ejemplo, en el G2B, pero en muchas no lo es.
2.2.1. 'egistros visi(les para el usuario
2.2.1. 'egistros visi(les para el usuario
Un registro isible para el usuario es uno que puede ser referenciado por Un registro isible para el usuario es uno que puede ser referenciado por medio del lenguaje máquina que ejecuta la CPU. Podemos clasi*carlos medio del lenguaje máquina que ejecuta la CPU. Podemos clasi*carlos en las siguientes categor7as'en las siguientes categor7as' •
• %so %so gengeneraeral:l: PuPuededen en seser r asasigignanadodos s popor r el el prprogograramamadodor r aa di
in
inststruruccccioionenes s es es orortotogogonanal l a a la la opopereracacióión. n. Es Es dedecicir, r, cucualalquiquierer registro de uso general puede contener el operando para cualquier registro de uso general puede contener el operando para cualquier código de operación. Esto proporciona una utili%ación de registros código de operación. Esto proporciona una utili%ación de registros de uso general aut0ntico. Con frecuencia, sin embargo, e6isten de uso general aut0ntico. Con frecuencia, sin embargo, e6isten restricciones.
restricciones. •
• ?atos:?atos: Pueden usarse 5nicamente para contener datos y no sePueden usarse 5nicamente para contener datos y no se pueden emplear en el
pueden emplear en el cálculo de la dirección de un operando.cálculo de la dirección de un operando. •
• ?irecciones:?irecciones: Pueden ser de uso más H menos general, o puedenPueden ser de uso más H menos general, o pueden estar dedicados a
estar dedicados a un modo de un modo de direccionamiento particulardireccionamiento particular.. •
• #ód#ódigoigos s de de concondicdiciónión:: tatam(im(i;n ;n llallamadmados os indindicaicadordores es oo AagsG/C
AagsG/C #on bits *jados por el hard&are del procesador como #on bits *jados por el hard&are del procesador como rresesulultatado do de de alalguguna na opopereracacióión. n. PPor or ejejememplplo, o, ununaa operaciónoperación aritm0tica puede producir un resultado positio, negatio, nulo o aritm0tica puede producir un resultado positio, negatio, nulo o con desbordamiento. 2demás de almacenarse el propio resultado con desbordamiento. 2demás de almacenarse el propio resultado en un registro o en la memoria, se obtiene tambi0n un código de en un registro o en la memoria, se obtiene tambi0n un código de condición.
condición.
)os registros de uso general pueden ser asignados por el programador a )os registros de uso general pueden ser asignados por el programador a d
diieerrssas as ffuunncciioonneses. . 2 2 eecceses, , ssu u uuso so ddenenttrro o ddeel l rrepepeerrttororiio o ddee instrucciones depende de la operación. Es decir, cualquier registro de instrucciones depende de la operación. Es decir, cualquier registro de us
uso o gegenerneral al pupuede ede cocontnteneener r el el opopererandando o papara ra cucualalquiquier er cócódidigo go dede operación. Esto proporciona una utili%ación de registros de aut0ntico uso operación. Esto proporciona una utili%ación de registros de aut0ntico uso general. Con frecuencia, sin embargo, e6isten restricciones. Por ejemplo, general. Con frecuencia, sin embargo, e6isten restricciones. Por ejemplo, puede haber registros espec7*cos para operaciones en coma otante y puede haber registros espec7*cos para operaciones en coma otante y operaciones de pila. En algunos casos, los registros de uso general operaciones de pila. En algunos casos, los registros de uso general pueden ser utili%ados para funciones de direccionamiento +este tema pueden ser utili%ados para funciones de direccionamiento +este tema será isto más adelante en esta asignatura. En otros casos, hay una será isto más adelante en esta asignatura. En otros casos, hay una se
sepapararacición ón paparrcicial al o o tototatal l enentrtre e rregegisistrtros os de de dadatotos s y y rregegisistrtros os dede dir
direcceccioniones. es. )os )os regregististroros s de de datdatos os puedpueden en usausarse rse 5ni5nicamcamentente e parparaa contener datos, y no se pueden emplear en el cálculo de una dirección contener datos, y no se pueden emplear en el cálculo de una dirección de operando. )os registros de dirección pueden ser de uso más o menos de operando. )os registros de dirección pueden ser de uso más o menos generales, o pueden estar dedicados a un modo de direccionamiento generales, o pueden estar dedicados a un modo de direccionamiento particular.
particular.
Entre otros, se pueden citar los siguientes ejemplos' Entre otros, se pueden citar los siguientes ejemplos'
2
2 $unteros de segmento:$unteros de segmento:
En una máquina con direccionamiento segmentado un registro de En una máquina con direccionamiento segmentado un registro de segmento contiene la dirección de la base del segmento. Puede segmento contiene la dirección de la base del segmento. Puede ha
habeber r m5m5ltltipipleles s rregegisistrtrosos' ' popor r ejejememplplo, o, ununo o papara ra el el sisiststememaa operatio y otro para el proceso actual.
operatio y otro para el proceso actual. 1
#e
#e ususan an parpara a didirereccccioionamnamieientnto o inindede6a6adodo, , y y pupuedeeden n ser ser auautoto inde6ado.
inde6ado. C
C $untero de pila:$untero de pila:
#i e6iste direccionamiento a pila isible al usuario, la pila está #i e6iste direccionamiento a pila isible al usuario, la pila está normalmente en memoria, y hay un registro dedicado que apunta normalmente en memoria, y hay un registro dedicado que apunta a la cabecera de 0sta. Esto permite un direccionamiento impl7cito( a la cabecera de 0sta. Esto permite un direccionamiento impl7cito( es decir, apilar +IpushJ, desapilar +IpopJ, y otras instrucciones es decir, apilar +IpushJ, desapilar +IpopJ, y otras instrucciones de
dela la pipila la quque e no no nenececesisitatan n cocontntenener er un un opopereranando do e6e6plpl7c7cititoo referente a ella. 8ay aqu7 arias cuestiones de dise$o a estudiar. referente a ella. 8ay aqu7 arias cuestiones de dise$o a estudiar. Un
Una a imimpoportrtantante, e, es es si si ususar ar reregigiststroros s de de ususo o CoCompmpleletatamenmentete general o si especiali%ar su us
general o si especiali%ar su uso.o. D
D #on el uso #on el uso de registros especializados:de registros especializados:
Keneralmente puede quedar impl7cito en el código de operación a Keneralmente puede quedar impl7cito en el código de operación a qu0
qu0 tiptipo o de de reregistgistro ro se se re*re*erere e un un detedetermirminadnado o camcampo po dede operando.
operando.
Figura 4: 'egistros de uso general
Figura 4: 'egistros de uso general
El campo de operando sólo debe identi*car uno de entre un conjunto de El campo de operando sólo debe identi*car uno de entre un conjunto de registros especiali%ados, en lugar de uno de entre todos los registros, lo registros especiali%ados, en lugar de uno de entre todos los registros, lo cual ahorra bits. Por otra parte, esta especiali%ación limita la e6ibilidad cual ahorra bits. Por otra parte, esta especiali%ación limita la e6ibilidad del programador.
del programador.
Este problema de dise$o, pero, como se mencionó, la tendencia parece Este problema de dise$o, pero, como se mencionó, la tendencia parece hacia el uso de registros especiali%ados. Htro problema de dise$o es el hacia el uso de registros especiali%ados. Htro problema de dise$o es el n5mero de registros de uso general o de datos más direcciones que n5mero de registros de uso general o de datos más direcciones que tienen que incluirse. De nueo, esto afecta al dise$o del repertorio de tienen que incluirse. De nueo, esto afecta al dise$o del repertorio de instrucciones, ya que más registros requieren más bits para el campo de instrucciones, ya que más registros requieren más bits para el campo de operando, parece óptimo alrededor de entre 9 y <= registros. ?enos operando, parece óptimo alrededor de entre 9 y <= registros. ?enos registros se traducen en más referencias a memoria( más registros no registros se traducen en más referencias a memoria( más registros no reducen notablemente las referencias a memoria. #in embargo, una reducen notablemente las referencias a memoria. #in embargo, una nuea apro
nuea apro6imaci6imación, que ón, que saca partido al saca partido al uso de uso de cientcientos de os de regisregistros, setros, se mani*esta en algunos sistemas 4A#C. Por 5ltimo, está la cuestión de la mani*esta en algunos sistemas 4A#C. Por 5ltimo, está la cuestión de la longitud de los
))oos s rregegiissttrroos s qquue e hhaan n dde e ccoonntteneneer r ddiirrececcciioonnees, s, hhaan n dde e sser er lloo su*cientemente grandes como para albergar la dirección más grande. su*cientemente grandes como para albergar la dirección más grande. )os registros de datos deben ser capaces de contener alores de la )os registros de datos deben ser capaces de contener alores de la mayor7a de tipos de datos. 2lgunas máquinas permiten que dos registros mayor7a de tipos de datos. 2lgunas máquinas permiten que dos registros contiguos sean usados como uno solo para contener alores de doble contiguos sean usados como uno solo para contener alores de doble lloonngigittuudd. . UUnna a 55llttiimma a ccaatteeggoorr77a a dde e rregegiisstrtroos, s, qquue e ees s aal l mmenenooss parcialmente isible al usuario, contiene códigos de condición +tambi0n parcialmente isible al usuario, contiene códigos de condición +tambi0n llamados IindicadoresJ o IagsJ. )os códigos de condición son bits llamados IindicadoresJ o IagsJ. )os códigos de condición son bits *jados por el hard&are de la CPU como resultado de alguna operación. *jados por el hard&are de la CPU como resultado de alguna operación. Po
Por r ejemejemploplo, , una una opeoperacración ión ariaritm0tm0tictica a puedpuede e prproduoducir cir un un reresulsultadtadoo positio, negatio, nulo, o con desbordamiento. 2demás de almacenarse positio, negatio, nulo, o con desbordamiento. 2demás de almacenarse el propio resultado en un registro o en la memoria, se obtiene tambi0n el propio resultado en un registro o en la memoria, se obtiene tambi0n u
un n ccóóddiiggo o dde e ccoonnddiicciióónn. . EEl l ccóóddiiggo o ppuuedede e sseer r ee66amamiinnadado o ccoonn posterioridad, como parte de
posterioridad, como parte de una operación de bifurcación condicional.una operación de bifurcación condicional. )os bits de códigos de condición se re5nen en uno o más registros. )os bits de códigos de condición se re5nen en uno o más registros. Formalmente, forman parte de un registro de control. Por lo general, las Formalmente, forman parte de un registro de control. Por lo general, las in
inststruruccciciononees s de de mámáququiina na peperrmimiteten n quque e esestotos s bibits ts sesean an lle7e7dodoss p
poor r rreeffererenencciia a iimmppll77cciitta, a, pperero o nno o ppuuededeen n sser er aallttereraaddoos s ppor or eell programador. En algunas máquinas, una llamada a una subrutina dará programador. En algunas máquinas, una llamada a una subrutina dará lugar a la salaguarda automática de todos los registros isibles por el lugar a la salaguarda automática de todos los registros isibles por el usuario, que serán restablecidos en el retorno de la subrutina. )a CPU usuario, que serán restablecidos en el retorno de la subrutina. )a CPU ll
lleea a acacababo o la la sasallagaguauardrda a y y rresestatablblececimimieientnto o cocomo mo papartrte e de de lala ejecución de las instrucciones de llamada y retorno, respectiamente. ejecución de las instrucciones de llamada y retorno, respectiamente. Esto permite a cada subrutina usar independientemente los registros Esto permite a cada subrutina usar independientemente los registros isibles por el usuario.
isibles por el usuario.
En otras máquinas, es responsabilidad del programador guardar los cont En otras máquinas, es responsabilidad del programador guardar los cont enidos de losregistros isibles para el programador releantes, antes de enidos de losregistros isibles para el programador releantes, antes de la
la llllamamadada a a a lla a susubrbrututiinana, , teteninienendo do quque e iincnclluiuir r en en el el pprrogograramama instrucciones para este *n.
instrucciones para este *n.
2.2.2
2.2.2
. 'egistros de #ontrol )
. 'egistros de #ontrol )
de !stado
de !stado
8ay diersos registros de la CPU que se emplean para controlar su 8ay diersos registros de la CPU que se emplean para controlar su funcionamiento. )a mayor7a de ellos, en la mayor parte de las máquinas, funcionamiento. )a mayor7a de ellos, en la mayor parte de las máquinas, no son isibles para el usuario. 2lgunos de ellos pueden ser isibles a no son isibles para el usuario. 2lgunos de ellos pueden ser isibles a instrucciones máquina ejecutada en un modo de control o de sistema instrucciones máquina ejecutada en un modo de control o de sistema operatio.operatio.
Faturalmente, máquinas diferentes tendrán diferentes organi%aciones de Faturalmente, máquinas diferentes tendrán diferentes organi%aciones de re
regigistrstros os y y ususaráarán n didiststinintatatetermrmininolologog7a7a. . #e #e ininclcluyuye e aqaqu7 u7 ununa a liliststaa ra
ra%o%onanablblememenentte e cocompmpleleta ta de de ttipipoos s de de rregegiiststrrosos, , ccon on ununa a brbreeee des
descricripcipción. ón. #on #on esenesenciacial l cuacuatrtro o regregististroros s para para la la ejeejecuccución ión de de unauna instrucción'
#ontador de programa $rogram #ounterC $#/:#ontador de programa $rogram #ounterC $#/: Contiene la Contiene la dirección de la siguiente instrucción
dirección de la siguiente instrucción a captara captar.. '
'egegisistrtro o de de ininststruruccccioionenes s IInsnstrtrucuctition on 'e'egigiststererC C I'I'/:/: Contiene la instrucción captada más recientemente.
Contiene la instrucción captada más recientemente. 'e
'egigiststro ro de de didirereccccioionenes s de de mememomoriria a ememoror) ) +d+ddrdresesss 'egisterC +'/:
'egisterC +'/: Está conectado a las l7neas de dirección del busEstá conectado a las l7neas de dirección del bus del sistema. Especi*ca la dirección de memoria de una operación del sistema. Especi*ca la dirección de memoria de una operación de lectura o de escritura.
de lectura o de escritura. 'e
'egigiststro ro intinterermemedidio o de de mememomoriria a o o 'e'egigiststro ro de de ?a?atotos s oo 'e
'egisgistro tro de de $a$ala(la(ra ra emoemor)r)uHeuHer r 'eg'egististererC C '/'/:: EstáEstá conectado a las l7neas de datos del bus del sistema. Contiene el conectado a las l7neas de datos del bus del sistema. Contiene el alor a almacenar en memoria o el 5ltimo alor le7do de memoria. alor a almacenar en memoria o el 5ltimo alor le7do de memoria. Formalmente, la CPU actuali%a el contador de programa despu0s de cad Formalmente, la CPU actuali%a el contador de programa despu0s de cad a captación de instrucción, de manera que siempre apunta a la siguiente a captación de instrucción, de manera que siempre apunta a la siguiente instrucción a ejecutar. Una instrucción de bifurcación o salto tambi0n instrucción a ejecutar. Una instrucción de bifurcación o salto tambi0n modi*cará el contenido del PC. )a instrucción captada se carga en A4, modi*cará el contenido del PC. )a instrucción captada se carga en A4, donde son anali%ados el código de operación y los campos de operando. donde son anali%ados el código de operación y los campos de operando. #e intercambian datos con la memoria por medio de ?24 y de ?14. En #e intercambian datos con la memoria por medio de ?24 y de ?14. En un sistema con organi%ación de bus, ?24 se conecta directamente al un sistema con organi%ación de bus, ?24 se conecta directamente al bus de direcciones y ?14 directamente al bus
bus de direcciones y ?14 directamente al bus de datos.de datos.
)os registros isibles por el usuario intercambian repetidamente datos )os registros isibles por el usuario intercambian repetidamente datos con ?14. )os cuatro registros que se acaban de mencionar se usan para con ?14. )os cuatro registros que se acaban de mencionar se usan para la transferencia de datos entre la CPU y la memoria. Dentro de la CPU, la transferencia de datos entre la CPU y la memoria. Dentro de la CPU, los datos tienen que ofrecerse
los datos tienen que ofrecerse a la 2)U para su procesamiento.a la 2)U para su procesamiento. ,a +,%:
,a +,%:
Puede tener acceso directo a ?14 y a los registros isibles para el usuari Puede tener acceso directo a ?14 y a los registros isibles para el usuari o.
o. Como Como alteralternatianatia, , puedehabpuedehaber er regiregistrostros s interintermedios medios adiciadicionales onales enen torno a la 2)U( estos registros siren como registros de entrada y salida torno a la 2)U( estos registros siren como registros de entrada y salida de la
de la 2)2)U, e U, e interintercambicambian datos an datos con ?14 con ?14 y los y los regiregistrostros isibles para els isibles para el usuario. !odos los dise$os de CPU incluyen un registro o un conjunto de usuario. !odos los dise$os de CPU incluyen un registro o un conjunto de registros, conocidos a menudo como palabra de estado del programa registros, conocidos a menudo como palabra de estado del programa +program status Lord, P#L, que contiene información de estado. P#L +program status Lord, P#L, que contiene información de estado. P#L co
contntieiene ne nonorrmamallmementnte e cócódidigogos s de de cconondidiccióión, n, adadememáás s de de ootrtraa información de estado. información de estado. !n !nttre re lolos s ccamamppoos s o o inindidiccadadororees s ccomomununes es se se inincclulu))en en loloss siguientes: siguientes: 2
2 8igno:8igno: Contiene el bit de signo del resultado de la 5ltima operación Contiene el bit de signo del resultado de la 5ltima operación aritm0tica.
aritm0tica. 1
1 #ero:#ero: Puesto a uno cuando el Puesto a uno cuando el resultado es .resultado es . C
C +carreo:+carreo: Puesto a uno si una operación da lugar a un acarreo +suma Puesto a uno si una operación da lugar a un acarreo +suma o adeudo +resta del bit más signi*catio. #e usa en operaciones o adeudo +resta del bit más signi*catio. #e usa en operaciones aritm0ticas multipalabra.
D
D Igual:Igual: Puesto a uno si el resultado de una comparación lógica es la Puesto a uno si el resultado de una comparación lógica es la igualdad.
igualdad. E
E ?es(ordamiento:?es(ordamiento: UUssaaddo o pparara a iinndidiccaar r uun n ddeesbsboorrddaamimieenntoto aritm0tico.
aritm0tico.
-- Interrupciones 6a(ilitadasin6a(ilitadas:Interrupciones 6a(ilitadasin6a(ilitadas: Usado para permitir o Usado para permitir o inhabilitar interrupciones.
inhabilitar interrupciones. K
K 8upervisor:8upervisor:
Andica si la CPU funciona en modo superisor o usuario. Mnicamente Andica si la CPU funciona en modo superisor o usuario. Mnicamente en
en momodo do susupeperrisisor or se se pupuededen en ejejececututar ar cicierertatas s ininststruruccccioioneness priilegiadas y se puede acceder a ciertas áreas de memoria.
priilegiadas y se puede acceder a ciertas áreas de memoria.
Figura *: indicadores de
Figura *: indicadores de
la +,%
la +,%
2.2.3.- !emplos de organización de
2.2.3.- !emplos de organización de
registros de #$% reales
registros de #$% reales
4esulta instructio e6aminar y comparar las organi%aciones de registros 4esulta instructio e6aminar y comparar las organi%aciones de registros d
de e ssiisstteemmaas s aannáállooggooss. . EEn n eesstta a sseecccciióónn, , ee66aammiinnaammoos s ddooss microprocesadores de :; bits que fueron dise$ados apro6imadamente al microprocesadores de :; bits que fueron dise$ados apro6imadamente al mismo tiempo' el ?otorola ?C;9 N#!4AOQ
,as Figuras : a/ ) (/
,as Figuras : a/ ) (/
44eprepreseesentntan an la la ororgaganini%ac%acióión n de de reregigistrstros os de de cacada da ununo o de de elellolos( s( loloss registros estrictamente internos, tales como el registro de dirección de registros estrictamente internos, tales como el registro de dirección de memoria, no se muestran.
memoria, no se muestran.
!n la Figura : c/
#
#e e ililustustra ra un un segsegunundo do asaspecpecto to ininststruructctiio o acacererca ca dedel l didise$se$o o de de lala organi%ación de los registros. Esta *gura muestra la organi%ación de los organi%ación de los registros. Esta *gura muestra la organi%ación de los rregegiiststrros os iisisiblbles es popor r el el ususuauaririo o en en el el AnAnttel el 99<9<9; ; NNE)E)22R9R9SS, , unun microprocesador de <= bits dise$ado como una a
microprocesador de <= bits dise$ado como una ampliación del 99;T.mpliación del 99;T. El ?C;9 distribuye sus registros de <= bits en ocho de datos y nuee El ?C;9 distribuye sus registros de <= bits en ocho de datos y nuee de direcciones. )os ocho registros de datos se usan principalmente para de direcciones. )os ocho registros de datos se usan principalmente para manipulación de datos y tambi0n se usan en direccionamiento como manipulación de datos y tambi0n se usan en direccionamiento como registros 7ndice.
registros 7ndice.
El Antel 99; usa un enfoque diferente para la organi%ación de los El Antel 99; usa un enfoque diferente para la organi%ación de los re
regigistrstros. os. CaCada da ununo o de de lolos s rregiegiststroros s titienene e un un ususo o esespepecicialal, , auaunqnqueue algunos registros se pueden emplear tambi0n para un uso general.
algunos registros se pueden emplear tambi0n para un uso general. El
El 999; 9; cocontntieiene ne cucuatatrro o rregegisistrtros os de de dadatotos s de de :; :; bibitts s quque e sosonn direccionables como registros de bytes o como registros de :; bits, y direccionables como registros de bytes o como registros de :; bits, y cuatro registros punteros e 7ndices de :; bits. )os registros de datos cuatro registros punteros e 7ndices de :; bits. )os registros de datos pueden utili%arse como de uso general en algunas instrucciones. En pueden utili%arse como de uso general en algunas instrucciones. En otras, los registros se usan impl7citamente.
otras, los registros se usan impl7citamente.
)a unidad de procesamiento central +CPU reali%a operaciones en los )a unidad de procesamiento central +CPU reali%a operaciones en los datos. En la mayor7a de las arquitecturas consta de tres partes' una datos. En la mayor7a de las arquitecturas consta de tres partes' una unidad aritm0tica lógica +2)U, una unidad de control y un conjunto de unidad aritm0tica lógica +2)U, una unidad de control y un conjunto de registros, ubicaciones de almacenamiento rápido.
registros, ubicaciones de almacenamiento rápido. )os r
)os registros son egistros son lugares de lugares de almacenamiento rápido almacenamiento rápido independiente queindependiente que guardan datos en forma temporal. 4egistros m5ltiples son necesarios guardan datos en forma temporal. 4egistros m5ltiples son necesarios para facilit
para facilitar ar el funcionamiel funcionamiento del ento del CPU. PodemoCPU. Podemos s diididiidir r las partes quelas partes que ccoommppoonneen n uun n orrdo deennaaddoor r een n ttrreess
grandes cat
grandes categor7aegor7as o s o subsisubsistemas' la unidstemas' la unidad de procesamiad de procesamiento ento centrcentralal +CPU, la memoria principal y el subsistema
+CPU, la memoria principal y el subsistema de entrada salida.de entrada salida.
2.3. !l ciclo de instrucción
2.3. !l ciclo de instrucción
2l encender una computadora, su CPU arranca de un estado inicial 2l encender una computadora, su CPU arranca de un estado inicial conoci
conocido do ++'eset'eset el cuál le obliga a comen%ar siempre desde el mismo el cuál le obliga a comen%ar siempre desde el mismo punto de partida. El fabricante +en este caso yo *ja el lugar, la dirección punto de partida. El fabricante +en este caso yo *ja el lugar, la dirección de la celda de memoria donde se requiere que est0 la primer instrucción de la celda de memoria donde se requiere que est0 la primer instrucción que la CPU
que la CPU a a ejecutar.a a ejecutar. )a tarea de una CPU es traer
)a tarea de una CPU es traer instruccionesinstrucciones desde la memoria y cumplir desde la memoria y cumplir con lo que ellas le indican, al *nali%ar la ejecución de la instrucción, la con lo que ellas le indican, al *nali%ar la ejecución de la instrucción, la CPU queda en conocimiento de donde se encuentra la que sigue. Para CPU queda en conocimiento de donde se encuentra la que sigue. Para comen%ar, solo tiene que saber dónde se encuentra la primera porque comen%ar, solo tiene que saber dónde se encuentra la primera porque desde esa en adelante, se asume que ienen en secuencia, a menos que desde esa en adelante, se asume que ienen en secuencia, a menos que
las propias instrucciones le instruyan que debe seguir por otro lado, las propias instrucciones le instruyan que debe seguir por otro lado, proocando saltos o des7os del curso o
proocando saltos o des7os del curso o Auo del programaAuo del programa.. Un Ciclo de instrucción Ancluye los siguientes subciclos'
Un Ciclo de instrucción Ancluye los siguientes subciclos'
#aptación:#aptación: Elear la siguiente instrucción de la Elear la siguiente instrucción de la memoria a la CPU.memoria a la CPU.
!ec!ecución:ución: Anterpretar el código de operación y llear a cabo laAnterpretar el código de operación y llear a cabo la operación indicada.
operación indicada.
Interrupción:Interrupción: #i las interrupciones están habilitadas y ha ocurrido #i las interrupciones están habilitadas y ha ocurrido una interrupción, salar el estado del proceso actual y atender la una interrupción, salar el estado del proceso actual y atender la interrupción.
interrupción. !l #iclo Indirecto !l #iclo Indirecto
)a ejecución de una instrucción puede inolucrar a uno o más operandos )a ejecución de una instrucción puede inolucrar a uno o más operandos en memoria, cada uno de los cuales requiere un acceso a memoria. en memoria, cada uno de los cuales requiere un acceso a memoria. 2demás, si se usa direccionamiento indirecto serán necesarios accesos a 2demás, si se usa direccionamiento indirecto serán necesarios accesos a memoria adicionales.
memoria adicionales. Po
Podemodemos s conconsidsiderar erar la la capcaptactación ión de de dirdirecceccioniones es indindirirectectas as comcomo o unun subciclo de instrucción más. )a principal l7nea de actiidad consiste en subciclo de instrucción más. )a principal l7nea de actiidad consiste en alt
alterernar nar las las actactiiiidadedades s de de capcaptactación ión y y ejeejecuccución ión de de insinstrutrucciccioneones.s. De
Despspu0u0s s de de quque e ununa a ininststruruccccióión n sesea a cacaptptadada, a, es es ee6a6amiminanada da paparara determinar si incluye alg5n direccionamiento indirecto. #i es as7, los determinar si incluye alg5n direccionamiento indirecto. #i es as7, los operandos requeridos se captan usando direccionamiento indirecto.
operandos requeridos se captan usando direccionamiento indirecto. !
!ras ras la la ejecución ejecución se se puede puede procesar procesar una una interrupción interrupción antes antes de de lala captación de la siguiente instrucción.
captación de la siguiente instrucción.
Figura ". #iclo de Instrucción
Figura ". #iclo de Instrucción
EsEsta ta *g*gurura a ililusustrtra a mámás s cocorrrerectctamamenente te la la nanatuturaralele%a %a dedel l ciciclclo o dede instrucción. Una e% que una instrucción es captada, deben identi*carse instrucción. Una e% que una instrucción es captada, deben identi*carse
sus campos de operandos. #e capta entonces de la memoria cada sus campos de operandos. #e capta entonces de la memoria cada operando de entrada, y este proceso puede requerir direccionamiento operando de entrada, y este proceso puede requerir direccionamiento in
indidirrecectoto. . )o)os s opopereranandodos s ububicicadados os en en rregegisistrtros os no no nenececesisitatan n seserr captados. Una e% que se ejecuta la operación, puede ser necesario un captados. Una e% que se ejecuta la operación, puede ser necesario un proceso similar para almacenar el resultado en la
proceso similar para almacenar el resultado en la memoria principal.memoria principal.
Figura 0. sueda
Figura 0. sueda
)a CPU cuenta con una serie de celdas de almacenamiento internas )a CPU cuenta con una serie de celdas de almacenamiento internas llamadas 4egistros, algunos de ellos tienen un uso dedicado y controlan llamadas 4egistros, algunos de ellos tienen un uso dedicado y controlan el funcionamiento de la máquina.
el funcionamiento de la máquina. $#
$# J J $r$rogograram m #o#oununteter r o o #o#ontntadador or de de $r$rogograramama' Es un' Es un registro dedicado de la CPU que en la fase de 15squeda apunta a registro dedicado de la CPU que en la fase de 15squeda apunta a la
la sisiguguieientnte e ininststruruccccióión n dedel l prprogogramrama, a, o o mámás s e6e6acactatamementnte e alal primer byte de la instrucción donde se almacena el código de primer byte de la instrucción donde se almacena el código de operación +Hperatie Code HpCode. Este código es el que se operación +Hperatie Code HpCode. Este código es el que se decodi*ca e
decodi*ca e indica ue 6acerindica ue 6acer yy ue operandos intervienenue operandos intervienen.. P
Parara a luluegego o de de hahabeber r obobteteninido do lolos s opopereranandodos s popodeder r papasasar r aa ejecutar la tarea.
ejecutar la tarea.
I' J Instruction 'egister o 'egistro de Instrucción
I' J Instruction 'egister o 'egistro de Instrucción' Es un' Es un rregegisistrtro o dededidicacado do de de la la CPCPU U quque e alalmamacecena na el el HpHpCoCode de de de lala instrucción tra7da en la b5squeda del presente ciclo. Es el alor instrucción tra7da en la b5squeda del presente ciclo. Es el alor cargado en A4 el que debe decodi*carse. )as instrucciones en cargado en A4 el que debe decodi*carse. )as instrucciones en memoria, para esta máquina, pueden tener uno o dos bytes. #i la memoria, para esta máquina, pueden tener uno o dos bytes. #i la instrucción es de un byte, ya se puede ejecutar porque el alor de instrucción es de un byte, ya se puede ejecutar porque el alor de A4 de*ne completamente lo que hay que hacer. #i la instrucción es A4 de*ne completamente lo que hay que hacer. #i la instrucción es de
de dodos s bybytetes, s, hahay y quque e leleer er el el sisiguguieientnte e bybyte te el el cucual al apaporortata información adicional, requerida para la ejecución. 2ntes de la información adicional, requerida para la ejecución. 2ntes de la decodi*cación no se sabe si la instrucción es de uno o dos bytes. decodi*cación no se sabe si la instrucción es de uno o dos bytes. 4
4ecoecordrdememos os quque e lalas s opoperaeracicionones es quque e se se pupuedeeden n rerealali%i%ar ar sosonn ssiieemmprpre e enenttrre e el el aalloor r en en el el 22ccuummuulladadoor r y y uun n ooppereraannddoo
almacenado en ?emoria, lo cual implica que hay que saber la almacenado en ?emoria, lo cual implica que hay que saber la ubicación del mismo o sea su Dirección.
ubicación del mismo o sea su Dirección. ,as tareas ue de(e realizar
,as tareas ue de(e realizar un procesador son:un procesador son: #aptar instrucción:
#aptar instrucción: )a CPU lee una instrucción de la memoria. )a CPU lee una instrucción de la memoria.
InteInterpretrpretar ar instinstruccirucción:ón: )a )a ininststruruccccióión n se se dedecocodidi*c*ca a paparara determinar qu0 acción es necesaria.
determinar qu0 acción es necesaria.
#aptar datos:#aptar datos: )a ejecución de una instrucción puede e6igir leer )a ejecución de una instrucción puede e6igir leer datos de la memoria o de un módulo de E#.
datos de la memoria o de un módulo de E#.
$rocesar datos:$rocesar datos: )a ejecución de una instrucción puede e6igir )a ejecución de una instrucción puede e6igir llear a cabo alguna operación a
llear a cabo alguna operación aritm0tica o lógica con los datos.ritm0tica o lógica con los datos. !scr
!scri(ir datos:i(ir datos: )os resultados de una ejecución pueden e6igir escribir)os resultados de una ejecución pueden e6igir escribir datos en la memoria o en un módulo de E#. Para hacer esto, es obio datos en la memoria o en un módulo de E#. Para hacer esto, es obio que la CPU necesita almacenar algunos datos temporalmente. Debe que la CPU necesita almacenar algunos datos temporalmente. Debe recordar
recordar
2.3.1 ciclo
2.3.1 ciclo
5etc6-decode-e7ecu
5etc6-decode-e7ecu
te
te
Un ciclo de instrucción +tambi0n llamado ciclo de fetch3and3e6ecute o Un ciclo de instrucción +tambi0n llamado ciclo de fetch3and3e6ecute o ci
ciclclo o de de fetfetchch3d3dececodode3ee3e6e6ecucute te en en ininglgl0s 0s es es el el peper7r7ododo o quque e tartarda da lala unidad central de proceso +CPU en ejecutar una instrucción de lenguaje unidad central de proceso +CPU en ejecutar una instrucción de lenguaje máquina. Comprende una secuencia de acciones determinada que debe máquina. Comprende una secuencia de acciones determinada que debe llear a cabo la CPU para ejecutar cada instrucción en un programa. llear a cabo la CPU para ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU puede requerir Cada instrucción del juego de instrucciones de una CPU puede requerir diferente n5mero de ciclos de instrucción para su ejecución.
diferente n5mero de ciclos de instrucción para su ejecución.
Un ciclo de instrucción está formado por uno o más ciclos máquina( Para Un ciclo de instrucción está formado por uno o más ciclos máquina( Para que cualquier sistema de proceso de datos basado en microprocesador que cualquier sistema de proceso de datos basado en microprocesador +p
+por or ejejememplplo o un un orordedenanadodor r o o mimicrcrococonontrtrololadador or +p+por or ejejememplplo o unun reproductor de ?P< realice una tarea +programa primero debe buscar reproductor de ?P< realice una tarea +programa primero debe buscar cada instrucción en la memoria principal y
cada instrucción en la memoria principal y luego ejecutarla.luego ejecutarla. #ec
#ecuenuencicia a de de acaccicionones es del del ciciclclo o de de ininststruruccccióión( n( 8a8abibitutualalmenmente te sosonn cuatro los eentos o pasos que se llean a cabo en cada ciclo de cuatro los eentos o pasos que se llean a cabo en cada ciclo de instrucción +ciclo de fetch' 1uscar la instrucción en la memoria principal instrucción +ciclo de fetch' 1uscar la instrucción en la memoria principal #e uelca el alor del contador de programa sobre el bus de direcciones. #e uelca el alor del contador de programa sobre el bus de direcciones. Entonces la CPU pasa la instrucción de la memoria principal a tra0s del Entonces la CPU pasa la instrucción de la memoria principal a tra0s del bus de datos al 4egistro de Datos de ?emoria +?D4. 2 continuación el bus de datos al 4egistro de Datos de ?emoria +?D4. 2 continuación el alor del ?D4 es colocado en el 4egistro de Anstrucción 2ctual +CA4, un alor del ?D4 es colocado en el 4egistro de Anstrucción 2ctual +CA4, un circuito que guarda la instrucción temporalmente de manera que pueda circuito que guarda la instrucción temporalmente de manera que pueda ser decodi*cada y ejecutada.
ser decodi*cada y ejecutada.
El decodi*cador de instrucción interpreta e implementa la instrucción. El El decodi*cador de instrucción interpreta e implementa la instrucción. El regi
contador de programa +PC, program counter guarda la dirección de contador de programa +PC, program counter guarda la dirección de memoria de la siguiente instrucción a ser ejecutada.
memoria de la siguiente instrucción a ser ejecutada. 'ecogida de datos desde la memoria principal 'ecogida de datos desde la memoria principal !
!ambi0n ambi0n se se lee lee la la dirección dirección efectia efectia de de la la memoria memoria principal principal si si lala in
inststruruccccióión n titienene e ununa a didirrececcición ón inindidirrecectata, , y y se se rrececogogen en lolos s dadatotoss requeridos de la memoria principal para ser procesados y colocados en requeridos de la memoria principal para ser procesados y colocados en los registros de datos.
los registros de datos. !ecutar la instrucción !ecutar la instrucción
2 partir del registro de instrucción, los datos que
2 partir del registro de instrucción, los datos que forman la instrucciónforman la instrucción son decodi*cados por la unidad de control. @sta interpreta la información son decodi*cados por la unidad de control. @sta interpreta la información como una secuencia de se$ales de control que son eniadas a las
como una secuencia de se$ales de control que son eniadas a las unidades funcionales releantes de la CPU pa
unidades funcionales releantes de la CPU para reali%ar la operaciónra reali%ar la operación requerida por la instrucción.
requerida por la instrucción.
F
F
i
i
g
g
u
u
r
r
a
a
&
&
.
.
#
#
i
i
c
c
l
l
o
o
5
5
e
e
t
t
c
c
6
6
-
-
d
d
e
e
c
c
o
o
d
d
e
e
-
-e7ecute
e7ecute
EEnn eessttee cciicclloo llaass
ffaasseess++oo ssuubb cciiccllooss''
b5squeda b5squeda
yy eejjeeccuucciióónn
++ccaaddaa ffaassee ttiieennee
etapas o etapas o actiidades actiidades F+8! F!D#K F+8! F!D#K
Cargar la siguiente instrucciónCargar la siguiente instrucción
Ancrementar el secuenciadorAncrementar el secuenciador
Anterpretar la AnstrucciónAnterpretar la Anstrucción F+8! !@!#%D!
Cargar los operandosCargar los operandos Ejecutar la operaciónEjecutar la operación Kuardar el resultadoKuardar el resultado
GGeri*car si eri*car si hay solicitudes de hay solicitudes de interrupcióninterrupción
2.3.2. 8egmentación de instrucciones
2.3.2. 8egmentación de instrucciones
)a segmentación de instrucciones es similar al uso de una cadena de )a segmentación de instrucciones es similar al uso de una cadena de montaje en una fábrica de manufacturación. En las cadenas de montaje, montaje en una fábrica de manufacturación. En las cadenas de montaje, el producto pasa a tra0s de arias etapas de producción antes de tener el producto pasa a tra0s de arias etapas de producción antes de tener el
el prprododucucto to tertermiminanadodo. . CaCada da etetapapa a o o segsegmenmento to de de la la cacadedena na estestáá especiali%ada en un área espec7*ca de la l7nea de producción y llea a especiali%ada en un área espec7*ca de la l7nea de producción y llea a cabo siempre la misma actiidad. Esta tecnolog7a es aplicada en el cabo siempre la misma actiidad. Esta tecnolog7a es aplicada en el dise$o de procesadores e*cientes. 2 estos procesadores se les conoce dise$o de procesadores e*cientes. 2 estos procesadores se les conoce como pipeline processors.
como pipeline processors. Un
Un pipipelpelinine e prprococessessor or esestá tá cocompmpuesuesto to popor r ununa a liliststa a de de sesegmgmenentotoss lineales y secuenciales en donde cada segmento llea a cabo una tarea lineales y secuenciales en donde cada segmento llea a cabo una tarea o
o un un grgrupupo o de de tatarreaeas s cocompmpututacacioionanaleles. s. PPueuede de seser r rrepeprresesenenttadadoo gr
grá*á*cacamementnte e en en dodos s didimemensnsiiononeses, , en en dodondnde e en en el el ejeje e eertrtiicacall encontramos los segmentos que componen el pipeline y en el segmento encontramos los segmentos que componen el pipeline y en el segmento ho
horiri%o%ontntal al rrepeprresesenentatamomos s el el titiemempopo. . +E+En n la la *g*gurura a se se mumuesestrtran an lala segmentación de instrucciones del pipeline.
segmentación de instrucciones del pipeline.
Figura 1.- segmentación de instrucciones
Figura 1.- segmentación de instrucciones
8ay tres aspectos importantes que deben ser considerados en pipeline. 8ay tres aspectos importantes que deben ser considerados en pipeline. )o primero que debemos obserar es que el trabajo es diidido en pie%as )o primero que debemos obserar es que el trabajo es diidido en pie%as que más o menos ajustan dentro de los segmentos que componen el que más o menos ajustan dentro de los segmentos que componen el pipeline. #egundo, para que el pipeline trabaje de forma e*ciente es pipeline. #egundo, para que el pipeline trabaje de forma e*ciente es nec
necesaresario io que que las las parparticticioniones es de de tratrabajbajo o tomtomen en apraproo6ima6imadamdamentente e lala mi