lunes, 27 de octubre de 2014

Disco Duro



LA MEMORIA SECUNDARIA


Cerca de la mitad de los años 50´s, las posibilidades prácticas de los procesadores fueron ampliadas notablemente con el uso de memorias auxiliares externas. Cintas, discos y tambores magnéticos registran gran cantidad de información para conservarla permanentemente o bien para utilizarla rápidamente durante las fases de procesamiento.

Se denomina memoria auxiliar debido a que reside lejos del procesador. Comparada con memoria principal, memoria secundaria tiene mayor capacidad a menor costo por byte, pero el tiempo que toma hacer acceso a los datos en ella es mayor que en la memoria principal.
La memoria masiva o auxiliar trata de suplir las deficiencias de la memoria central. Estas son, su relativa baja capacidad y el hecho de que la información almacenada se borra al eliminar la alimentación de energía eléctrica . En efecto, los dispositivos de memoria masiva auxiliar (hoy día principalmente discos y cintas magnéticas) son mucho más capaces (del orden de 10000 veces o más) que la memoria principal, y en ellos se puede grabar la información durante mucho tiempo.


Según la definición de periférico dada anteriormente, éstos están constituidas por unidades de entrada, unidades de salida y unidades de memoria masiva auxiliar. Estas últimas unidades también pueden considerarse como unidades de E/ S, ya que el ordenador central puede escribir (dar salidas) sobre ellas, y la información escrita puede ser leída, es decir, ser dada como entrada. Ahora bien, la información grabadas en estos soportes no es directamente inteligible para el usuario de la ordenador, esto es, no puede haber una intercomunicación directa usuario-ordenador como la que hay a través de un teclado/ pantalla.

EL DISCO DURO


El disco duro es el sistema de almacenamiento más importante de su computador y en el se guardan los archivos de los programas - como los sistemas operativo D.O.S. o Windows 95, las hojas de cálculo (Excel, Qpro, Lotus) los procesadores de texto (Word, WordPerefct, Word Star, Word Pro), los juegos (Doom, Wolf, Mortal Kombat) - y los archivos de cartas y otros documentos que usted produce.

La mayoría de los discos duros en los computadores personales son de tecnología IDE (Integrated Drive Electronics), que viene en las tarjetas controladoras y en todas las tarjetas madres (motherboard) de los equipos nuevos. Estas últimas reconocen automáticamente (autodetect) los discos duros que se le coloquen, hasta un tamaño de 2.1 gigabytes.

La tecnología IDE de los discos duros actuales ha sido mejorada y se le conoce como Enhaced IDE (EIDE), permitiendo mayor transferencia de datos en menor tiempo. Algunos fabricantes la denominan Fast ATA-2. Estos discos duros son más rápidos y su capacidad de almacenamiento supera un gigabyte. Un megabyte (MB) corresponde aproximadamente a un millón de caracteres y un gigabyte (GB) tiene alrededor de mil megabytes. Los nuevos equipos traen como norma discos duros de 1.2 gigabytes.

Las motherboards anteriores con procesadores 386, y las primeras de los 486, reconocen solo dos discos duros, con capacidad hasta de 528megabytes cada uno y no tienen detección automática de los discos. Para que estas motherboards reconozcan discos duros de mayor capacidad, debe usarse un programa (disk manager) que las engaña, haciéndoles creer que son de 528 megabytes.

Si su computador es nuevo, la motherboard le permite colocar hasta cuatro unidades de disco duro. El primer disco duro se conoce comoprimario master, el segundo como primario esclavo, el tercero como secundario master y el cuarto como secundario esclavo. El primario master será siempre el de arranque del computador (C :\>).

La diferencia entre master y esclavo se hace mediante un pequeño puente metálico (jumper) que se coloca en unos conectores de dos paticas que tiene cada disco duro. En la cara superior del disco aparece una tabla con el dibujo de cómo hacer el puente de master, esclavoo master con esclavo presente.

 PARTES DEL DISCO DURO


La estructura física de un disco es la siguiente: un disco duro se organiza en platos (PLATTERS), y en la superficie de cada una de sus dos caras existen pistas (TRACKS) concéntricas, como surcos de un disco de vinilo, y las pistas se dividen en sectores (SECTORS). El disco duro tiene una cabeza (HEAD) en cada lado de cada plato, y esta cabeza es movida por un motor servo cuando busca los datos almacenados en una pista y un sector concreto.

El concepto "cilindro" (CYLINDER) es un parámetro de organización: el cilindro está formado por las pistas concéntricas de cada cara de cada plato que están situadas unas justo encima de las otras, de modo que la cabeza no tiene que moverse para acceder a las diferentes pistas de un mismo cilindro.

En cuanto a organización lógica, cuando damos formato lógico (el físico, o a bajo nivel, viene hecho de fábrica y no es recomendable hacerlo de nuevo, excepto en casos excepcionales, pues podría dejar inutilizado el disco) lo que hacemos es agrupar los sectores en unidades de asignación (CLUSTERS) que es donde se almacenan los datos de manera organizada. Cada unidad de asignación sólo puede ser ocupado por un archivo (nunca dos diferentes), pero un archivo puede ocupar más de una unidad de asignación.

FUNCIONAMIENTO DEL DISCO DURO

Cuando usted o el software indica al sistema operativo a que deba leer o escribir a un archivo, el sistema operativo solicita que el controlador del disco duro traslade los cabezales de lectura/escritura a la tabla de asignación de archivos (FAT). El sistema operativo lee la FAT para determinar en qué punto comienza un archivo en el disco, o qué partes del disco están disponibles para guardar un nuevo archivo.

Los cabezales escriben datos en los platos al alinear partículas magnéticas sobre las superficies de éstos. Los cabezales leen datos al detectar las polaridades de las partículas que ya se han alineado.

Es posible guardar un solo archivo en racimos diferentes sobre varios platos, comenzando con el primer racimo disponible que se encuentra. Después de que el sistema operativo escribe un nuevo archivo en el disco, se graba una lista de todos los racimos del archivo en la FAT.

Un ordenador funciona al ritmo marcado por su componente más lento, y por eso un disco duro lento puede hacer que tu MAQUINA sea vencida en prestaciones por otro equipo menos equipado en cuanto a procesador y cantidad de memoria, pues de la velocidad del disco duro depende el tiempo necesario para cargar tus programas y para recuperar y almacenar tus datos.

CARACTERISTICAS DEL DISCO DURO

A continuación vamos a indicar los factores o características básicas que se deben tener en cuenta a la hora de comprar un disco duro.

  •  Capacidad de almacenamiento 

La capacidad de almacenamiento hace referencia a la cantidad de información que puede grabarse o almacenar en un disco duro. Hasta hace poco se medía en Megabytes (Mg), actualmente se mide en Gigabytes (Gb).

Comprar un disco duro con menos de 3,5 GIGAS de capacidad dará lugar a que pronto te veas corto de espacio, pues entre el sistema operativo y una suite ofimática básica (procesador de texto, base de datos, hoja de cálculo y programa de presentaciones) se consumen en torno a 400 MB.

Si instalas los navegadores de MICROSOFT y NETSCAPE suma otros 100MB; una buena suite de tratamiento gráfico ocupa en torno a 300MB y hoy en día muchos juegos ocupan más de 200MB en el disco duro.

Ya tenemos en torno a 1,5 GIGAS ocupados y aún no hemos empezado a trabajar con nuestro ordenador.

Si nos conectamos a internet, vermos que nuestro disco duro empieza a tener cada vez menos espacio libre, debido a esas páginas tan interesantes que vamos guardando, esas imágenes que resultarán muy útiles cuando diseñemos nuestra primera Página WEB y esas utilidades y programas SHAREWARE que hacen nuestro trabajo más fácil.


  • Velocidad de Rotación (RPM)


Es la velocidad a la que gira el disco duro, más exactamente, la velocidad a la que giran el/los platos del disco, que es donde se almacenan magnéticamente los datos. La regla es: a mayor velocidad de rotación, más alta será la transferencia de datos, pero también mayor será el ruido y mayor será el calor generado por el disco duro. 

Se mide en número revoluciones por minuto ( RPM). No debe comprarse un disco duro IDE de menos de 5400RPM (ya hay discos IDE de 7200RPM), a menos que te lo den a un muy buen precio, ni un disco SCSI de menos de 7200RPM (los hay de 10.000RPM). 

Una velocidad de 5400RPM permitirá una transferencia entre 10MB y 16MB por segundo con los datos que están en la parte exterior del cilindro o plato, algo menos en el interior.


  • Tiempo de Acceso (Access Time)

Es el tiempo medio necesario que tarda la cabeza del disco en acceder a los datos que necesitamos. Realmente es la suma de varias velocidades:


* El tiempo que tarda el disco en cambiar de una cabeza a otra cuando busca datos.
* El tiempo que tarda la cabeza lectora en buscar la pista con los datos saltando de una a otra.
* El tiempo que tarda la cabeza en buscar el sector correcto dentro de la pista.
Es uno de los factores más importantes a la hora de escoger un disco duro. Cuando se oye hacer ligeros clicks al disco duro, es que está buscando los datos que le hemos pedido. Hoy en día en un disco moderno, lo normal son 10 milisegundos.


  •  Memoria CACHE (Tamaño del BUFFER)


El BUFFER o CACHE es una memoria que va incluida en la controladora interna del disco duro, de modo que todos los datos que se leen y escriben a disco duro se almacenan primeramente en el buffer. La regla de mano aquí es 128kb-Menos de 1 Gb, 256kb-1Gb, 512kb-2Gb o mayores. Generalmente los discos traen 128Kb o 256Kb de cache.

 Si un disco duro está bien organizado (si no, utilizar una utilidad desfragmentadora: DEFRAG, NORTON SPEEDISK, etc.), la serie de datos que se va a necesitar a continuación de una lectura estará situada en una posición físicamente contigua a la última lectura, por eso los discos duros almacenas en la caché los datos contiguos, para proporcionar un acceso más rápido sin tener que buscarlos.

 De ahí la conveniencia de desfragmentar el disco duro con cierta frecuencia.
El buffer es muy útil cuando se está grabando de un disco duro a un CD-ROM, pero en general, cuanto más grande mejor, pues contribuye de modo importante a la velocidad de búsqueda de datos.


  • Tasa de transferencia (Transfer Rate)

Este número indica la cantidad de datos un disco puede leer o escribir en la parte más exterrior del disco o plato en un periodo de un segundo. Normalmente se mide en Mbits/segundo, y hoy en día, en un disco de 5400RPM, un valor habitual es 100Mbits/s, que equivale a 10MB/s.

  • Interfaz (Interface) - IDE - SCSI

Es el método utilizado por el disco duro para conectarse al equipo, y puede ser de dos tipos: IDE o SCSI.

Todas las placas bases relativamente recientes, incluso desde las placas 486, integran una controladora de disco duro para interfaz IDE (normalmente con bus PCI) que soporta dos canales IDE, con capacidad para dos discos cada una, lo que hace un total de hasta cuatro unidades IDE (disco duro, CD-ROM, unidad de backup, etc.)
Debemos recordar, sin embargo, que si colocamos en un mismo canal dos dispositivos IDE (e.g. disco duro+CD-Rom), para transferir datos uno tiene que esperar a que el otro haya terminado de enviar o recibir datos, y debido a la comparativa lentitud del CD-ROM con respecto a un disco duro, esto ralentiza mucho los procesos, por lo que es muy aconsejable colocar el CD-ROM en un canal diferente al de el/ los discos duros.

La velocidad de un disco duro con interfaz IDE tambien se mide por el PIO (modo programado de entrada y salidad de datos), de modo que un disco duro con PIO-0 transfiere hasta 3,3MB/s, PIO-1 hasta 5,2MB/s, PIO-2 hasta 8,3MB/s. Estos modos anteriores pertenecen a la especificación ATA, pero en la especificación ATA-2 o EIDE, los discos duros pueden alcanzar PIO-3, hasta 11,1MB/s, o PIO-4, hasta 16,6MB/s. Los discos duros modernos soportan en su mayoría PIO-4.

Recientemente se ha implementado la especificación ULTRA-ATA o ULTRA DMA/33, que puede llegar a picos de transferencia de hasta 33,3MB/s. Este es el tipo de disco duro que hay que comprar, aunque nuestra controladora IDE no soporte este modo, pues estos discos duros son totalmente compatibles con los modos anteriores, aunque no les sacaremos todo el provecho hasta que actualicemos nuestro equipo.
En cuanto al interfaz SCSI, una controladora de este tipo suele tener que comprarse aparte (aunque algunas placas de altas prestaciones integran este interfaz) y a pesar de su precio presenta muchas ventajas.

Se pueden conectar a una controladora SCSI hasta 7 dispositivos (o 15 si es WIDE SCSI)de tipo SCSI (ninguno IDE), pero no solo discos duros, CD-ROMS y unidades de BACKUP, sino también grabadoras de CD-ROM (las hay también con interfaz IDE), escáneres, muchas de las unidades de BACKUP, etc.

Otra ventaja muy importante es que la controladora SCSI puede acceder a varios dispositivos simultáneamente, sin esperar a que cada uno acabe su transferencia, como en el caso del interfaz IDE, aumentando en general la velocidad de todos los procesos.

Las tasas de transferencia del interfaz SCSI vienen determinados por su tipo (SCSI-1, Fast SCSI o SCSI-2, ULTRA SCSI, ULTRA WIDE SCSI), oscilando entre 5MB/s hasta 80MB/s. Si el equipo va a funcionar como servidor, como servidor de base de datos o como estación gráfica, por cuestiones de velocidad, el interfaz SCSI es el más recomendable.












jueves, 23 de octubre de 2014

PROCESADORES RISC Y CISC

PROCESADORES RISC Y CISC



Una de las primeras decisiones a la hora de diseñar un microprocesador es decidir cuál será su juego de instrucciones.
La decisión por dos razones; primero, el juego de instrucciones decide el diseño físico del conjunto; segundo, cualquier operación que deba ejecutarse en el microprocesador deberá poder ser descrita en términos de un lenguaje de estas instrucciones.


Frente a esta cuestión caben dos filosofías de diseño; máquinas denominadas CISC y máquinas denominadas RISC.



Cuando hablamos de microprocesadores CISC, computadoras con un conjunto de instrucciones complejo, (del inglés complex instruction set computer), y procesadores RISC, computadoras con un conjunto de instrucciones reducido, (del inglés reduced instruction set computer), se piensa que los atributos complejo y reducido describen las diferencias entre los dos modelos de arquitectura para microprocesadores.
Esto es cierto solo de forma superficial, pues se requiere de muchas otras características esenciales para definir los RISC y los CISC.


Hasta hace solo algunos años, la división era tajante: RISC se utilizaba para entornos de red, mientras que CISC se aplicaba en ordenadores domésticos. Pero en la actualidad se alzan voces que afirman que CISC está agotando sus posibilidades, mientras otras defienden fervientemente que CISC ya ha alcanzado a RISC, adoptando algunas de sus principales características.


Arquitectura RISC (del inglés reduced instruction set computer)




Arquitectura CISC (complex instruction set computer)




Características Fundamentales:
·         Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
  • Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.



     
     Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.


Un chip RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden, por ejemplo:


  • Incrementar el tamaño del conjunto de registros.
  • Mayor velocidad en la ejecución de instrucciones.
  • Implementar medidas para aumentar el paralelismo interno.
  • Añadir cachés enormes.
  • Añadir otras funcionalidades, como E/S y relojes para minicontroladores.
  • Construir los chips en líneas de producción antiguas que de otra manera no serían utilizables.
  • No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energía o de tamaño limitado.

Las características que generalmente son encontradas en los diseños RISC son:


  • Codificación uniforme de instrucciones, lo que permite una de codificación más rápida.
  • Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y así simplificar el diseño del compilador.
  • Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de instrucciones aritméticas simples.
  • Los tipos de datos soportados en el hardware no se encuentran en una máquina RISC.
  • Los diseños RISC también prefieren utilizar como característica un modelo de memoria Harvard, donde los conjuntos de instrucciones y los conjuntos de datos están conceptualmente separados.




Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones.

  • Muchos modos de direccionamiento 
  •  Varios formatos de instrucciones
  •  Normalmente microprogramados (no microprogramables
  •    La ejecución de las instrucciones lleva varios ciclos de máquina.

Los diseños RISC han llevado a un gran número de plataformas y arquitecturas al éxito, algunas de las más grandes:


  • La línea MIPS Technologies Inc., que se encontraba en la mayoría de las computadoras de Silicon Graphics hasta 2006, y estuvo en las consolas ya descatalogadas Nintendo 64, PlayStation y PlayStation 2. Actualmente se utiliza en la PlayStation Portable y algunos routers.
  • La serie IBM POWER, utilizado principalmente por IBM en Servidores y superordenadores.
  • La versión PowerPC de Motorola e IBM (una versión de la serie IBM  POWER) utilizada en los ordenadores AmigaOne, Apple Macintosh como el iMac, eMac, Power Mac y posteriores (hasta 2006). Actualmente se utiliza en muchos sistemas empotrados en automóviles, routers, etc, así como en muchas consolas de videojuegos, como la Playstation 3, Xbox 360 y Wii.
  • El procesador SPARC y UltraSPARC de Sun Microsystems y Fujitsu, que se encuentra en sus últimos modelos de servidores (y hasta 2008 también en estaciones de trabajo).
  • El PA-RISC y el HP/PA de Hewlett-Packard, ya descatalogados.
  • El DEC Alpha en servidores HP AlphaServer y estaciones de trabajo AlphaStation, ya descatalogados.
  • El ARM – El paso de hardware de instrucciones x86 en operaciones RISC llega a ser significativo en el área y la energía para dispositivos móviles e integrados. Por lo tanto, los procesadores ARM dominan en PALM, Nintendo DS, Game Boy Advance y en múltiples PDAs, Apple iPods, Apple iPhone, iPod Touch (Samsung ARM1176JZF, ARM Cortex-A8, Apple A4), Apple iPad (Apple A4 ARM -based SoC), videoconsolas como Nintendo DS (ARM7TDMI, ARM946E-S), Nintendo Game Boy Advance (ARM7TDMI).
  • El Atmel AVR usado en gran variedad de productos, desde mandos de la Xbox a los coches de la empresa BMW.
  • La plataforma SuperH de Hitachi, originalmente usada para las consolas Sega Super 32X, Saturn y Dreamcast, ahora forman parte de el corazon de muchos equipos electrónicos para el consumo.SuperH es la plataforma base de el grupo Mitsubishi - Hitachi. Estos dos grupos, unidos en 2002, dejaron aparte la propia arquitectura RISC de Mitsubishi, el M32R.
  • Los procesadores XAP usados en muchos chips wireless de poco consumo (Bluetooth, wifi) de CSR.





Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de las computadoras personales actuales.


Ejemplo de microprocesadores basados en la tecnología CISC:


  • Intel 8086, 8088, 80286, 80386, 80486.
  • Motorola 68000, 68010, 68020, 68030, 6840.


Ejemplo de microprocesadores basados en la tecnología CISC:


  • MIPS, Millions Instruction Per Second.
  • PA-RISC, Hewlett Packard.
  • SPARC, Scalable Processor Architecture, Sun Microsystems.
  • POWER PC, Apple, Motorola e IBM.



Entre las ventajas de RISC  tenemos las siguientes:


  • La CPU trabaja más rápido al utilizar menos ciclos de reloj para ejecutar instrucciones.
  • Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a diferencia de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecución de nuevas operaciones.
  • Cada instrucción puede ser ejecutada en un solo ciclo del CPU




Entre las ventajas de CISC destacan las siguientes:


  • Reduce la dificultad de crear compiladores.
  • Permite reducir el costo total del sistema.
  • Reduce los costos de creación de sftware.
  • Mejora la compactación de código.
  • Facilita la depuración de errores.


TAXONOMIA DE FLYNN

TAXONOMÍA DE FLYNN

La taxonomía introducida por Flynn [FLYN72] es la forma más común de clasificar a los sistemas según sus capacidades de procesamiento paralelo.

Flynn propuso las siguientes categorias:


  • Una Secuencia de instrucciones y unh secuencia de datos(SISD): Es un único procesador que interpreta una única secuencia de instrucciones para operar con los datos almacenados en una única memoria, no explota el paralelismo en las instrucciones ni en flujos de datos. Ejemplos de arquitecturas SISD son las máquinas con uni-procesador tradicionales como el PC o los antiguos mainframe.

external image 250px-SISD.svg.png

  • Una secuencia de instrucciones y múltiples secuencias de datos(SIMD): Una solo intrucción controla paso a paso la ejecución simultanea y sincronizada de un cierto número de elementos de proceso. Cada elemento de proceso tiene una memoria asociada, Un computador que explota varios flujos de datos dentro de un único flujo de instrucciones para realizar operaciones que pueden ser paralelizadas de manera natural. Por ejemplo, un procesador vectorial.

external image 250px-SIMD.svg.png




  • Múltiples secuencias de instrucción y una secuencia de datos(MISD): Se transmite una secuencia de datos a un conjunto de procesadores, y cada uno de los cuales ejecuta una secuencia de instrucciones diferente. Poco común debido al hecho de que la efectividad de los múltiples flujos de instrucciones suele precisar de múltiples flujos de datos. Sin embargo, este tipo se usa en situaciones de paralelismo, como por ejemplo en navegación aérea, donde se necesitan varios sistemas de respaldo en caso de que uno falle. También se han propuesto algunas arquitecturas teóricas que hacen uso de MISD, pero ninguna llegó a producirse en masa

external image 250px-MISD.svg.png
  • Múltiples secuencias de instrucción y mútiples secuncias de datos(MIMD): Consiste un en conjunto de procesadores que ejecutan simultáneamente secuencias de instrucción diferentes con conjuntos de datos diferentes. Los SMP, los clusters y los sistemas NUMA son ejemplos de esta categoría.

external image 250px-MIMD.svg.png
MapaParalelo.png
Tipos de sistemas de paralelosSe aplica en:
SISDMonoprocesadores.
SIMDProcesadores vectoriales y matriciales.
MISDNo se implementa.
MIMDMemoria compartida con SMP, NUMA y con memoria distribuida con clusters.




Más Información: Wikispaces.com

Final del formulario


FORMATOS DE INSTRUCCION

Formatos de instrucción:

La representación de la instrucción en las computadoras se denomina "Formato de instrucción”.
Sabemos que los programas están formados por instrucciones y la parte esencial de estas es el código de operación que señala la instrucción a ejecutar; el resto se refiere a los operandos. Muchas instrucciones contienen además los datos que usan o especifican donde está dicho dato. Todo lo relativo a la especificación de dónde está el dato se llama “Direccionamiento”, de los cuales existen muchos.

Criterio en el diseño de los Formatos de Instrucción: Cuando un grupo de diseñadores de una computadora han de elegir un formato de instrucción, son múltiples los factores a tener en cuenta:

a)Las instrucciones cortas son mejores que las instrucciones largas; porque ocupan menos en memoria. Este requisito es importante ya que la memoria no es gratuita y cuanta más memoria usemos para almacenar instrucciones menos datos podremos almacenar simultáneamente en memoria central, con lo que se utilizará más la memoria secundaria y así se relentizará su ejecución.

b)La velocidad de transferencia o caudal de una memoria. Si el caudal de una memoria es de “t”bits/sg y la longitud de media de la instrucción es de “r”bits, entonces la memoria puede entregar un máximo de t/r instrucciones /sg.

c)Diseño del formato de instrucción que consiste en dejar suficiente sitio (bits) en la instrucción para poder expresar todas las operaciones deseadas.

d) La longitud de la palabra de instrucción sea múltiplo entero de la longitud de la palabra de memoria. Si la longitud de la palabra de la memoria es de “K”bits la palabra de instrucción debería tener una longitud de K, 2K, 3K.....

e)Elegir el número de campos de dirección (operandos) que va ha tener la instrucción, así como el nº de bits que se necesitan para cada operando. Existen formatos de instrucción con 1, 2, 3 o 4 direcciones.

Códigos de operación con extensión: este método se suele utilizar en arquitecturas con longitud de instrucción fijas. 

Por ejemplo:
*Sea una màquina cuyas instrucciones tienen 16bits de longitud y las direcciones de 4bits tal y como se representa en la fig:
Arquitectura de computadores
Este formato es razonable para un tipo de máquina que tenga 16 registros (direcionar 1 registro de entre un total de 16 hace necesario 4bits). Con este formato podemos tener 16 operaciones distintas con tres direcciones. Ahora bien si los diseñadores necesitan:
*15 instrucciones de 3 direcciones
*14 instrucciones de 2 direcciones.
*31 instrucciones de 1 direcciones.
*16 instrucciones sin direcciones.

Más información en: El Rincón del Vago
http://html.rincondelvago.com/arquitectura-de-computadores_3.html

TIPOS DE INSTRUCCIONES

Tipos de instrucciones

Podemos clasificar tres tipos de instrucciones. Detallemos dichos tipos.


I) Las instrucciones de procesamiento sobre operandos en memoria;
- Movimiento o transferencia de datos
- Aritméticas
- Comparación
- Lógicas
- Desplazamiento
- Bit


II) Las instrucciones de ruptura de secuencia
- incondicional
- condicional
- subrutina
 
III) Las instrucciones de intercambio


I) Las instrucciones de procesamiento sobre operandos en memoria:
  • Movimiento o transferencia de datos
Las instrucciones de transferencia de datos permiten copiar, en el operando destino, la información almacenada en el operando origen, quedando este último sin modificar. Destino y origen pueden ser registros o posiciones de memoria. En general, no modifican los biestables de estado del computador.
 
Las denominaciones más frecuentes son:
MOVE Transfiere el contenido de un registro a otro, o de una posición de memoria a otra.
STORE Transfiere el contenido de un registro a la memoria
LOAD Transfiere el contenido de una posición de memoria a un registro. Es la operación inversa del STORE

  • Aritméticas

Son operaciones aritméticas que se ejecutan en la unidad aritmética. Las denominaciones más comunes son:
ADD Suma
SUBTRACT Resta
INCREMENT Incrementa
DECREMENT Decrementa
MULTIPLY Multiplica
DIVIDE Divide
NEGATE Cambia de signo
ABSOLUTE Valor absoluto

  • Comparación

La operación de comparación COMPARE consiste en restar o en hacer la operación XOR de cada bit de dos o más operandos. No se almacena el resultado, pero sí se modifica según proceda los biestables de estado.
Suele ir precediendo a una bifurcación condicional, que interrogará el valor de algunos de los biestables de estado que modifique la comparación.

  • Lógicas

Las instrucciones lógicas, más corrientes, son las que se listan a continuación. Conviene recordar que las operaciones lógicas se realizan en cada uno de los bits de los operandos de forma independiente y que modifican los bits de estado.
AND OR NOT XOR

  • Desplazamiento
Modifican los bits de estado, siendo las denominaciones más corrientes:

SHIFT Puede ser a derecha o izquierda
ROTATE Igual que el anterior pero puede incluir el bit de acarreo

  • Bit

Operan con los bits. Pueden ser:
BIT TEST
BIT SET
BIT CLEAR


II) Las instrucciones de ruptura de secuencia

Permiten alterar la secuencia normal de ejecución del programa. De forma genérica se dice que son instrucciones de salto o bifurcación, puesto que, en vez de pasar a la instrucción que ocupa la posición siguiente, "saltan" a ejecutar las instrucciones que se encuentran en otra posición de memoria.

  • Bifurcación incondicional

Producen la bifurcación sin ninguna condición. Ejemplo es la instrucción JUMP.

  • Bifurcación condicional

Las bifurcaciones condicionales son instrucciones q ue tienen dos secuencias distintas:

- Cuando no se cumple la condición de bifurcación, no hacen nada (incremento del PC)

- Cuando sí se cumple la condición de bifurcación, modifican el PC, que recibe la dirección de bifurcación.
 
 Las condiciones de bifurcación se establecen sobre los biestables de estado, biestables que almacenan ciertas condiciones sobre las operaciones realizadas con anterioridad. Estas condiciones pueden hacerse sobre un sólo biestable o sobre varios simultáneamente.
Las condiciones que se consultan son:

ZERO; 
NOT ZERO; 
EQUAL; 
NOT EQUAL; 
CARRY; 
NOT CARRY; 
POSITIVE; 
NEGATIVE;
OVERFLOW; 
NOT OVERFLOW; 
GREATER THAN; 
LESS THAN;

  • Subrutina (con retorno)

Las instrucciones de bifurcación con retorno salvaguardan la dirección de la instrucción que ocupa la posición siguiente. De esta forma, se puede retornar al punto donde se bifurcó y seguir ejecutando en la dirección siguiente a la que causó el salto.
El uso más frecuente de la bifurcación con retorno es para llamar a subrutinas (instrucción que suele llamarse CALL o BRANCH).
Uno de los problemas clásicos de las bifurcaciones con retorno es la selección del lugar donde se salvaguarda la dirección de retorno. La solución más usada es el de la memoria pila.
Este método permite llamadas anidadas de cualquier nivel, así como llamadas recursivas. En efecto, cada nueva llamada va introduciendo en la pila su dirección de retorno, sin destruir las anteriores. Dado que los retornos se hacen en orden inverso a las llamadas, la pila siempre tiene en la cabecera la dirección de retorno adecuada.

El puntero a la cabecera de la pila está almacenado en el registro STACK POINTER (puntero a pila)


Llamada a subrutina


III) Las instrucciones de intercambio (Entrada/Salida)

Las instrucciones de Entrada / Salida son en realidad instrucciones de transferencia, con la peculiaridad de que el destino o el origen es un registro de un periférico. Muchos computadores no tienen este tipo de instrucciones, realizandose estas funciones con las instrucciones LOAD, STORE y/o MOVE.
Las denominaciones más corrientes son las siguientes:
 
INPUT Transfiere la información de un puerto de entrada a un registro o a memoria. A veces se denomina READ.
 
OUTPUT Operación inversa al input. A veces se denomina WRITE.Tipos de instrucciones
Podemos clasificar tres tipos de instrucciones. Detallemos dichos tipos.



Más información en: