Son aquéllos que están escritos
en lenguajes directamente inteligibles por la máquina (computadora), ya que sus
instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0
y 1) que especifican una operación y las posiciones (dirección) de memoria
implicadas en la operación se denominan instrucciones de máquina o código
máquina. El código máquina es el conocido código binario.
Las instrucciones en lenguaje
máquina dependen del hardware de la computadora y, por tanto, diferirán de una
computadora a otra.
Ventajas del Lenguaje Máquina
Posibilidad de cargar (transferir
un programa a la memoria) sin necesidad de traducción posterior, lo que
supone una velocidad de ejecución superior a cualquier otro lenguaje de
programación.
Desventajas del Lenguaje Máquina
·Dificultad
y lentitud en la codificación.
·Poca
fiabilidad.
·Gran
dificultad para verificar y poner a punto los programas.
·Los
programas solo son ejecutables en el mismo procesador (CPU).
En la actualidad, las desventajas
superan a las ventajas, lo que hace prácticamente no recomendables a los
lenguajes máquinas.
Así mismo, siendo este el lenguaje que entiende la máquina, es
exclusivamente binario, pero con objeto de simplificar sus expresiones se
utiliza el hexadecimal, y para comprender el significado de las instrucciones se
emplean nemónicos. Estas tres formas de representar las instrucciones están
íntimamente relacionadas con la máquina, puesto que cada código guarda
correspondencia con una instrucción que es decodificador de instrucciones es
capaz de interpretar.
Esta unidad se encarga de
realizar las operaciones elementales de tipo aritmético (sumas, restas,
productos, divisiones) y de tipo lógico (comparaciones). A través de un bus
interno se comunica con la unidad de control la cual le envia los datos y le
indica la operación a realizar.
La ALU
está formada a su vez por los siguientes elementos:
·Circuito operacional
·Registros de entrada
(REN)
·Registro acumulador
·Registro de estado
(flags)
Circuito operacional.
Contiene los circuitos necesarios para la
realización de las operaciones con los datos procedentes de los registros de
entrada (REN). Este circuito tiene unas entradas de órdenes para seleccionar la
clase de operación que debe realizar en cada momento (suma, resta, etc).
Registros de entrada (REN).
En
ellos se almacenan los datos u operandos que intervienen en una instrucción
antes de la realización de la operación por parte del circuito operacional.
También se emplean para el almacenamiento de resultados intermedios o finales
de las operaciones respectivas.
Registro acumulador.
Almacena
los resultados de las operaciones llevadas a cabo por el circuito operacional.
Está conectado con los registros de entrada para realimentación en el caso de
operaciones encadenadas. Asimismo tiene una conexión directa al bus de datos
para el envío de los resultados a la memoria central o a la unidad de control.
Registro de estado (flags).
Se
trata de unos registros de memoria en los que se deja constancia algunas
condiciones que se dieron en la última operación realizada y que habrán de ser
tenidas en cuenta en operaciones posteriores. Por ejemplo, en el caso de hacer
una resta, tiene que quedar constancia si el resultado fue cero, positivo o
negativo.
Es el
centro nervioso del ordenador, ya que desde ella se controlan y gobiernan todas
las operaciones. Cómo funciones básica tiene:
Tomar las instrucciones
de memoria
Decodificar o interpretar
las instrucciones
Ejecutar las instrucciones (tratar las situaciones de tipo interno (inherentes a la propia CPU) y de tipo externo (inherentes a los periféricos)
Para
realizar su función, la unidad de control consta de los siguientes elemento:
Contador de programa
Registro de instrucciones
Decodificador
Reloj
Secuenciador
Contador de programa.
Contiene
permanentemente la dirección de memoria de la siguiente instrucción a ejecutar.
Al iniciar la ejecución de un programa toma la dirección de su primera
instrucción. Incrementa su valor en uno, de forma automática, cada vez que se
concluye una instrucción, salvo si la instrucción que se está ejecutando es de
salto o de ruptura de secuencia, en cuyo caso el contador de programa tomará la
dirección de la instrucción que se tenga que ejecutar a continuación; esta
dirección está en la propia instrucción en curso.
Registro de instrucción.
Contiene
la instrucción que se está ejecutando en cada momento. Esta instrucción llevará
consigo el código de operación (un código que indica qué tipo de operación se
va a realizar, por ejemplo una suma) y en su caso los operandos (datos sobre
los que actúa la instrucción, por ejemplo los números a sumar) o las direcciones
de memoria de estos operandos.
Decodificador.
Se
encarga de extraer el código de operación de la instrucción en curso (que está
en el registro de instrucción), lo analiza y emite las señales necesarias al
resto de elementos para su ejecución a través del secuenciador.
Reloj.
Proporciona
una sucesión de impulsos eléctricos o ciclos a intervalos constantes
(frecuencia constante), que marcan los instantes en que han de comenzar los
distintos pasos de que consta cada instrucción.
Secuenciador.
En este
dispositivo se generan órdenes muy elementales (microórdenes) que,
sincronizadas por los impulsos de reloj, hacen que se vaya ejecutando poco a
poco la instrucción que está cargada en el registro de instrucción.
Se
denomina bus, en informática, al conjunto de conexiones físicas (cables, placa
de circuito impreso, etc.) que pueden compartirse con múltiples componentes de
hardware para que se comuniquen entre sí.
El
propósito de los buses es reducir el número de rutas necesarias para la
comunicación entre los distintos componentes, al realizar las comunicaciones a
través de un solo canal de datos. Ésta es la razón por la que, a veces, se
utiliza la metáfora "autopista de datos".
¿Qué es la unidad de interfaz del bus (BIU) o
unidad E/S?
Es la parte del
procesador que se une con el resto de la PC. Debe su nombre al hecho de que
realiza los movimientos de datos hacia el bus de datos del procesador, el
primer conducto en la transferencia de información hacia y desde el CPU. La BIU
es la responsable de responder a todas las señales que van al procesador, y de
generar todas las señales que van del procesador a las demás partes del
sistema. También sirve de paso a las instrucciones de programa y los datos para
que éstos puedan alcanzar los registros de la unidad de control y de la ALU. La
BIU sincroniza los niveles de las señales de la circuitería interna del
microprocesador con los de los otros componentes dentro de la PC. Los circuitos
internos de un microprocesador, por ejemplo, se diseñan para consumir poca
electricidad de modo que puedan funcionar más rápidamente y evitar el
calentamiento excesivo. Estos circuitos internos delicados no pueden manejar
los voltajes más altos necesarios para los componentes externos. Por lo tanto,
cada señal que sale del microprocesador pasa a través de un buffer de señal
intermedio en la BIU que incrementa su voltaje.
Tipo de Buses ·Bus de datos:
También
llamado bus principal o de sistema, es un conjunto de líneas de comunicación
través del cual se realiza la transferencia de datos que emite el procesador
como las que se dirigen hacia el de los componentes de un ordenador, con una
velocidad dada por el reloj del sistema en hercios. Tratándose
de un bus bidireccional.
Dicho
bus, está formado por cables o pistas en un circuito impreso, dispositivos como
resistores y condensadores además de circuitos integrados, donde su ancho de
banda suele ser una potencia de dos y esta determina cuanta información (bits)
puede fluir por él. ·Bus de Control
En ocasiones
denominado bus de comando, transporta las órdenes y las señales de
sincronización que provienen de la unidad de control y viajan hacia los
distintos componentes de hardware. Se trata de un bus bidireccional en la
medida en que también transmite señales de respuesta del hardware. ·Bus de control
En ocasiones
denominado bus de comando, transporta las órdenes y las señales de
sincronización que provienen de la unidad de control y viajan hacia los
distintos componentes de hardware. Se trata de un bus bidireccional en la
medida en que también transmite señales de respuesta del hardware.
Ejemplos
de Buses Comerciales
• Bus
ISA, EISA, MCA: Industry Standard
Architecture
Extended
ISA
Micro
Chanel Adapter
• Bus PCI [PCI-X, PCIe]: Peripheral Component
Interconnect
•
Bus AGP: Accelerated Graphics Port
•
Bus IDE: Integrated Drive Electronics
•
Bus SCSI: Small Computer System Interface
• Bus SATA: Serial ATA
•
Bus Serial Attached SCSI
•
Buses USB (Universal Serial Bus) y Fire Wire
•
Bus AC’97
•
Bus PCMCIA: Personal Computer Memory Card International Association
Los modos de
direccionamientos no son más que un
mecanismo que permite localizar una ubicación de algún dato (operando o la
ubicación de un operando en una instrucción) específico y se pueda acceder al
mismo de una forma fácil y ligera.
Un modo de
direccionamiento especifica la forma de calcular la dirección de memoria
efectiva de un operando mediante el uso de la información contenida en
registros y / o constantes, contenida dentro de una instrucción de la máquina o
en otra parte
Además de esto el modo
de direccionamiento permite reducir el espacio ocupado en memoria por las instrucciones,
Permitir la reubicación del código y Facilitar el manejo de las estructuras de
datos. Un computador dispone de varios modos de direccionamiento y esto permite
un manejo más eficiente y eficaz, entre direccionamiento que maneja un computar
tenemos los siguientes:
ØDIRECCIONAMIENTO INMEDIATO
La
instrucción contiene al propio objeto.
Se
emplea cuando la instrucción contiene un valor constante.
El
tamaño del operando viene determinado por el espacio reservado para él en el Formato
de instrucción.
En este modo el operando es
especificado en la instrucción misma. En otras palabras, una instrucción de
modo inmediato tiene un campo de operando en vez de un campo de dirección. El
campo del operando contiene el operando actual que se debe utilizar en conjunto
con la operación especificada en la instrucción. Las instrucciones de modo
inmediato son útiles para inicializar los registros en un valor constante.
Cuando el campo de dirección especifica un registro del procesador, la
instrucción se dice que está en el modo de registro
ejemplo: MOV A,#17H
ØDIRECCIONAMIENTO DIRECTO
El campo de
operando en la instrucción contiene la dirección en memoria donde se encuentra
el operando.
En este modo la
dirección efectiva es igual a la parte de dirección de la instrucción. El
operando reside en la memoria y su dirección es dada directamente por el campo
de dirección de la instrucción. En una instrucción de tipo ramificación el
campo de dirección especifica la dirección de la rama actual.
Ejemplo: MOV
A,17H
ØDIRECCIONAMIENTO INDIRECTO
El campo de
operando contiene una dirección de memoria, en la que se encuentra la dirección
efectiva del operando
La instrucción contiene una dirección que se emplea para leer en memoria una Dirección
intermedia que será la verdadera dirección del objeto buscado.
Subcampos del campo de operando
Mdir
CD (dirección indirecta
Ø DIRECCIONAMIENTO POR REGISTRO
Sirve para
especificar operando que están en registros. En este modo, los
operandos están en registros que residen dentro de la CPU
Ø DIRECCIONAMIENTO RELATIVO A REGISTRO
La dirección del objeto se obtiene sumando el contenido de
un registro base, un registro índice y un desplazamiento.
Subcampos del campo
de operando
Mdir
CR1 CR2 CD (desplazamiento)
Ejemplo M68000: MOVE.L D0,12(A0,D2)
Consiste, al igual que el indirecto a través de registro, en calcular la dirección efectiva como la suma del contenido del registro base y un cierto desplazamiento que siempre será positivo. Esta técnica permite códigos reentrantes y acceder de forma fácil y rápida a posiciones cercanas de memoria. Este modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las funciones (para acceder a los parámetros almacenados en la pila).
ØDIRECCIONAMIENTO INDIRECTO A REGISTRO
- Es similar al direccionamiento
indirecto, pero la dirección intermedia está contenida en un registro, no en
una posición de memoria.
- La instrucción contendrá la
referencia al registro.
- Subcampos del campo de operando
Mdir
CR
-
Coincide con el direccionamiento relativo a registro base sin usar
desplazamiento.
-
Ejemplo M68000: MOVE.L D0,(A4)
DE PILA
Se utiliza
cuando el operando está en memoria y en la cabecera de la pila. Este direccionamiento se basa en las
estructuras denominadas Pila (tipo LIFO), las cuales están marcados por el
fondo de la pila y el puntero de pila (*SP), El puntero de pila apunta a la
última posición ocupada. Así, como puntero de direccionamiento usaremos el SP.
El desplazamiento más el valor del SP nos dará la dirección del objeto al que
queramos hacer referencia. En ocasiones, si no existe C. de desplazamiento solo
se trabajara con la cima de la pila. Este tipo de direccionamiento nos aporta
flexibilidad pero por el contrario, es mucho más complejo que otros tipos
estudiados más arriba.
RELATIVO A UN REGISTRO INDICE
Es similar al
anterior, excepto que es el contenido del registro índice el que indica el
desplazamiento que se produce a partir de una dirección de memoria que se pasa
también como argumento a la orden que utiliza este modo de direccionamiento.
Aunque en esencia son dos modos equivalentes. La EA se calcula como la suma del
contenido del registro índice y una dirección de memoria:
vídeo sobre direccionamiento de memoria
el contenido es de mi autoria y es una recopilacion de distintas fuentes :
Puedes descargar un PDF con mas información al respecto
La arquitectura de un procesador describe sus
estructuras internas y cómo funcionan. Éstas son estructuras lógicas; todos los
procesadores son hechos de material semiconductor, y es el cómo este material
es estructurado lo que determina cómo trabajará el procesador. Esto es similar
al software: todo software simplemente es una cadena larga de unos y ceros,
pero es el cómo se diseña y ponen estos bits lo que determinan si el software
es bueno o no.
Los procesadores son de alguna manera “ cajas
negras” . Todos realizan la misma función básica (viéndolo desde el exterior):
procesan las instrucciones. De De hecho, las instrucciones que soportan, por lo
menos en el mundo de las PCs, no han cambiado mucho en los últimos años. Pero
en el interior de los procesadores, la forma en que éstos ejecutan las
instrucciones se vuelve cada vez más complicada y poderosa. Además de mejorar
el rendimiento por medio de la "fuerza bruta" (aumentando las
velocidades de reloj) los fabricantes de procesadores han encontrado maneras innovadoras
de aumentar más el rendimiento de cada ciclo del reloj. Por ejemplo, el Intel
486DX-25 tiene dos veces el rendimiento del Intel 386DX-25, aunque los dos
funcionan a la misma velocidad de reloj. La arquitectura interna tiene un impacto en
qué tan rápido, el procesador, puede funcionar. Ya que cada vez es más difícil
diseñar circuitos que puedan funcionar en cantidades más pequeñas de tiempo. El
crear procesadores que puedan funcionar a velocidades mayores hace necesario no
sólo cambiar las características físicas, sino también su diseño lógico
interno. La mayoría de los diseños del microprocesador dividen su circuitería lógica
interna en cuatro partes funcionales: los registros internos del procesador, la
unidad de entrada-salida “ E/S” o BIU (Bus Interface Unit),
La
unidad de control, y la unidad lógico aritmética (o ALU por sus siglas en inglés,
Aritmetic Logic Unit). A los registros internos, al ALU y a la unidad de
control en común se les llama unidad central de proceso (o CPU por sus siglas
en inglés, Central Processing Unit), aunque a menudo el término CPU se utiliza
como sinónimo para el microprocesador entero.
Las cuatro partes del microprocesador
interaccionan juntas. La unidad de control opera el reloj interno
del microprocesador, y determina la razón de tiempo a la que el microprocesador
opera. La BIU determina la anchura del bus del microprocesador, que influye en
la velocidad para que los datos y las instrucciones se puedan mover dentro y
fuera del microprocesador, los registros internos determinan cuántos datos
puede manejar el microprocesador a la vez, y el ALU es la que realiza todos los
cálculos aritméticos y decisiones.
Por otra parte cabe resaltar que los
registros son áreas del almacenamiento local dentro del procesador, que son
usadas para almacenar datos con los cuales está trabajando el procesador en un
momento dado de la ejecución de una instrucción El ancho (en bits) de los
registros del procesador, determina cuánta información puede manejar a la vez.
Nota : Entre más registros internos tenga el
procesador, existirá mayor flexibilidad para la programación. Sin embargo,
aumenta la complejidad del procesador.
Entre alguno registro que están presente en
el mismo podemos encontrar los siguientes :
Registros de segmento: Un registro de
segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamiento
conocida como el segmento actual.
Registro CS. El SO almacena la dirección inicial del segmento
de código de un programa en el registro CS. Esta dirección de segmento, más un
valor de desplazamiento en el registro apuntador de instrucción (IP), indica la
dirección de una instrucción que es buscada para su ejecución.
Registro DS. La dirección inicial de un segmento de
datos de programa es almacenada en el registro DS. En términos sencillos, esta
dirección, más un valor de desplazamiento en una instrucción, genera una
referenciaa la localidad de un byte especifico en el segmento de datos.
Registro SS. El registro SS permite la colocación en
memoria de una pila, para almacenamiento temporal de direcciones y datos. El SO
almacena la dirección de inicio del segmento de pila de un programa en el
registro SS. Esta dirección de segmento, más un valor de desplazamiento en el
registro del apuntador de pila (SP), indica la palabra actual en la pila que
está siendo direccionada.
Registro ES. Algunas operaciones con cadenas de
caracteres (datos de caracteres) utilizan el registro extra de segmento para
manejar el direccionamiento de memoria. En este contexto, el registro ES esta
asociado con el registro DI (índice). Un programa que requiere el uso del
registro ES puede inicializarlo con una dirección de segmento apropiada.
Registros FS y GS. Son registros extra de segmento en los
procesadores 80386 y posteriores. Registros de propósito general. Los registros de propósito
general AX, BX, CX y DX son los motores sistema. Son únicos en el sentido de
que se puede direccionarlos como una palabra o como una parte de un byte. El último
byte de la izquierda es la parte "alta", y el último byte de la
derecha es la parte "baja". Por ejemplo, el registro CX consta de una
parte CH (alta) y una parte CL (baja).
Registro AX. El registro AX, el acumulador principal, es
utilizado para operaciones que implican entrada/salida y la mayor parte de la
aritmética. Por ejemplo, las instrucciones para multiplicar, dividir y traducir
suponen el uso del AX. También, algunas operaciones generan código más
eficiente si se refieren al AX en lugar de a los otros registros.
Registro BX. El BX es conocido como el registro base ya
que es el único registro de propósito general que puede ser índice para
direccionamiento indexado. También es común emplear el BX para cálculos.
Registro CX. El DX es conocido como el registro de
datos. Algunas operaciones de entrada/salida requieren su uso, y las
operaciones de multiplicación y división con cifras grandes suponen al DX y al
AX trabajando juntos.
El microprocesador es el circuito integrado central y más complejo de un sistema informático; a modo de ilustración, se le suele llamar cerebro de un computador.Es el encargado de ejecutar los programas, desde el sistema operativo hasta las aplicaciones de usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones aritméticas y simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria.
Esta unidad central de procesamiento está constituida, esencialmente, por registros, una unidad de control, una unidad aritmético-lógica (ALU) y una unidad de cálculo en coma flotante(conocida antiguamente como coprocesador matemático).
El microprocesador está conectado generalmente mediante un zócalo específico de la placa base de la computadora; normalmente para su correcto y estable funcionamiento, se le incorpora un sistema de refrigeración que consta de un disipador de calor fabricado en algún material de alta conductividad térmica, como cobre o aluminio, y de uno o más ventiladores que eliminan el exceso del calor absorbido por el disipador. Entre el disipador y la cápsula del microprocesador usualmente se coloca pasta térmica para mejorar la conductividad del calor. Existen otros métodos más eficaces, como la refrigeración líquida o el uso de células peltier para refrigeración extrema, aunque estas técnicas se utilizan casi exclusivamente para aplicaciones especiales, tales como en las prácticas de overclocking. La medición del rendimiento de un microprocesador es una tarea compleja, dado que existen diferentes tipos de cargas que pueden ser procesadas con diferente efectividad por procesadores de la misma gama. Una métrica del rendimiento es la frecuencia de reloj que permite comparar procesadores con núcleos de la misma familia, siendo este un indicador muy limitado dada la gran variedad de diseños con los cuales se comercializan los procesadores de una misma marca y referencia.
Un sistema informático de alto rendimiento puede estar equipado con varios microprocesadores trabajando en paralelo, y un microprocesador puede, a su vez, estar constituido por varios núcleos físicos o lógicos. Un núcleo físico se refiere a una porción interna del microprocesador cuasi-independiente que realiza todas las actividades de una CPU solitaria, un núcleo lógico es la simulación de un núcleo físico a fin de repartir de manera más eficiente el procesamiento. Existe una tendencia de integrar el mayor número de elementos dentro del propio procesador, aumentando así la eficiencia energética y la miniaturización. Entre los elementos integrados están las unidades de punto flotante, controladores de la memoria RAM, controladores de buses y procesadores dedicados de vídeo.