Sistemas informáticos multiusuario e en rede/Procesador

En Galilibros, o Wikibooks en galego.
Saltar ata a navegación Saltar á procura


A misión do procesador consiste en executar instrucións dun programa. Fisicamente está formado por circuítos electrónicos que actualmente están integrados nun chip denominado “microprocesador”.

O consumo do procesador adoita situarse entre os 65 e os 115 watts de potencia.

Partes[editar]

O procesador pode dividirse en cinco partes distintas, atendendo á función das mesmas:

Rexistros[editar]

Son memorias de traballo moi pequenas encargadas de almacenar de forma temporal a información (datos, enderezos, etc.) necesaria por parte do procesador. O seu tamaño en bits determina “lonxitude de palabra” do procesador (16 bits, 32 bits, 64 bits, etc.).

Existen distintos tipos de rexistros segundo a súa función (de propósito xeral, de propósito específico, de acceso á memoria, etc.) que se verán segundo se utilicen na unidade de control ou na unidade aritmético-lóxica.

Dentro da xerarquía de memoria, os rexistros atópanse na cima. É dicir, son os de maior rapidez de acceso, menor tamaño, e por suposto, maior prezo.

Unidade de control[editar]

A función fundamental desta unidade é a de realizar a busca e interpretación das instrucións que recibe e que compoñen un programa. Realiza repetidamente a seguinte secuencia:

  1. recibe as instrucións da memoria na orde establecida polo programa,
  2. identifica o tipo de instrucións de que se trata (cálculo, decisión, salto, etc.), e
  3. xera a secuencia axeitada de ordes para o resto dos elementos funcionais que constitúen o computador.

Consta de diversas partes, cada unha das cales ten a súa propia función:

Reloxo
É o encargado de sincronizar os instantes en que comezan os distintos pasos de que consta cada instrución. A velocidade de pulso do reloxo mídese en Hercios (Hz).
Controlador do programa
É un rexistro que almacena o enderezo de memoria da seguinte instrución a executar.
Rexistro de instrucións
É un rexistro que contén a instrución que se está a executar, o código da operación e no seu caso os operandos ou os enderezos de memoria dos mesmos.
Decodificador
Extrae o código de operación da instrución en curso (que está no rexistro de instrucións), analízao e emite os sinais precisos para a súa execución a través do secuenciador.
Secuenciador
Xera ordes moi elementais (microinstrucións) que, sincronizadas polos impulsos do reloxo, fan que se execute paso a paso a instrución que está cargada no rexistro de instrucións.

Unidade aritmético-lóxica[editar]

Esta unidade é a encargada de realizar todas as operacións de tipo lóxico (cumprimento de condicións) e as aritméticas sinxelas (sumas, restas, multiplicacións e divisións).

Consta de diversos compoñentes:

Circuíto operacional
Contén os circuítos precisos para a realización das operacións. Ten unhas entradas de ordes para seleccionar a clase de operación.
Rexistro do estado
É un rexistro no que se deixa constancia dalgunhas condicións que se deron na última operación (paridade, desbordamento, etc.).
Rexistros de entradas
Son dous rexistros nos que se almacenan os datos ou operandos que interveñen nunha instrución.
Rexistro acumulador
É un rexistro que serve para almacenar os resultados das operacións efectuadas polo circuíto operacional.

Unidade de coma flotante[editar]

Tamén coñecida coma “coprocesador matemático”, é a encargada de realizar as operacións complexas (raíces cadradas, logaritmos, operacións con vectores, etc.) utilizando para tal fin uns rexistros específicos. Non existía inicialmente no deseño de Von Neumann, comezou utilizarse nos microprocesadores de Intel a partires do modelo 486.

Estas operacións anteriormente realizábanse na unidade aritmético-lóxica mediante algoritmos (mediante unha serie de pasos), pero mediante a unidade de coma flotante gáñase potencia de cálculo ao posuír circuítos deseñados especificamente para executar ditas instrucións.

É un procesador independente do procesador que o contén e divídese en:

Rexistros
Son específicos para a unidade de coma flotante.
Unidade de control
É a encargada de xestionar as operacións que se van realizar na unidade de coma flotante.
Unidade de execución numérica
É a encargada de realizar as operacións en coma flotante, para o que dispón de rexistros cunha estrutura de signo, expoñente e mantisa.

Memoria caché[editar]

A súa función consiste en almacenar os datos e mailas instrucións frecuentes de forma temporal para reducir así o tempo de acceso á memoria central. Ao igual que a unidade de coma flotante non existía inicialmente no deseño de Von Neumann, e comezou utilizarse nos microprocesadores de Intel a partires do modelo 486. As prestacións da memoria caché son moi superiores ás da memoria RAM.

Divídese en caché para instrucións e caché para datos.

Inicialmente a caché que estaba dentro do procesador denominábase “capa 1”, e a que estaba fóra, entre o procesador e a memoria central, chamábase “capa 2”. Posteriormente as capas 1 e 2 situáronse dentro do procesador, e apareceu unha terceira capa que se situou fóra deste ─a caché externa─. A día de hoxe existen varias memorias caché, e a medida que se achegan á memoria RAM son maiores e máis lentas.

O bus que comunica a memoria caché co núcleo do procesador chámase BSB.

Propiedades[editar]

Arquitectura[editar]

RISC[editar]

RISC son siglas de Reduced Instruction Set Computing, «Computación cun conxunto de instrucións simples». A unidade de control recoñece unha pequena cantidade de instrucións e cada instrución se executa nun único ciclo de reloxo. Un exemplo de arquitectura RISC son os vellos procesadores PowerPC de Apple.

CISC[editar]

CISC son siglas de Complicated Instruction Set Computing, «Computación cun conxunto de instrucións complexas». A unidade de control utiliza os procesos de decodificación e secuenciación para que unha instrución CISC se execute ao longo de varios ciclos de reloxo. En cada ciuclo de reloxo se irá executando unha das microinstrucións que compoñen unha instrución CISC. Nun mesmo ciclo de reloxo as microinstrucións poden ir executándose en paralelo. Esta técnica coñécese coma “canalización”. Un exemplo de arquitectura CISC son as x86 de Intel.

Canto máis sinxelas sexan as instrucións do procesador máis complexo terá que ser o compilador que xere o código máquina para procesadores dese tipo.

Xogo de instrucións[editar]

Indica que instrucións están integradas no procesador. Por exemplo, “x86” significa que o procesador contén o xogo de instrucións 8086. Fóronse engadindo outros xogos de instrucións baseados en SIMD (Single Instruction Multiple Data, «Instrucións sinxelas con varios datos»):

MMX
Son 57 instrucións para acelerar os gráficos, son e vídeo, aumentando o rendemento das aplicacións multimedia. Os procesadores que conteñen MMX poden ir executando en paralelo estas instrucións aínda que bloquean unidade de coma flotante porque utilizan os seus rexistros. Melloran a compresión e descompresión de vídeo, a manipulación de imaxes, etc.
3DNOW
É unha mellora de AMD con respecto a MMX na que engade 24 instrucións adicionais. Tamén traballa cos rexistros da unidade de coma flotante.
MMX2
É unha evolución do MMX por parte de Intel onde engadiu outras 70 instrucións.
SSE
Trátase dun novo xogo de instrucións que hoxe en día vai pola cuarta versión (SSE4). Estas instrucións están orientadas á reprodución de medios e a internet. Posúe os seus propios rexistros de coma flotante.

Para que os programas poidan utilizar estas instrucións hai que ter instaladas as APIs oportunas (OpenGL e/ou DirectX).

Tensión de alimentación[editar]

É a tensión coa que traballa o microprocesador, e mídese en voltios.

Outrora, o procesador traballaba con 5 voltios, pero hoxe en día utiliza ao redor dun voltio. Canto menor é a tensión que utiliza o procesador, menor calo produce.

A tensión de alimentación dos procesadores ven establecida de fábrica, pero pode cambiarse. Este cambio facíase antes mediante un jumper na placa base, se ben hoxe en día pode realizarse cambiando a configuración da RAM-CMOS. Se o sistema se volve inestable e se apaga debido á temperatura, pódese probar a reducir un pouco a tensión de alimentación.

Frecuencia do reloxo[editar]

Todas as instrucións que se executan no procesador están sincronizadas polo sinal do reloxo. Na actualizade ese sinal mídese en GHz. A frecuencia do procesador chámase frecuencia interna e resulta moi superior á frecuencia do bus da placa que comunica o procesador coa memoria principal. Para que o sistema funcione correctamente, ambas frecuencias deben ser múltiplos entre si. Ao cociente entre a frecuencia interna e a da placa chámaselle “factor de multiplicación”.

MIPS[editar]

As megainstrucións por segundo indican a cantidade de millóns de instrucións que pode executar o procesador nun segundo. Para determinar este valor téñense en conta todas as propiedades que inflúen na execución das instrucións: a frecuencia do procesador, a lonxitude dos rexistros, a memoria caché, a velocidade do bus do sistema, a frecuencia de traballo da memoria RAM, etc.

É a mellor forma de medir as prestacións dun sistema.

Procesamento en paralelo[editar]

Un sistema operativo pode atender a procesos distintos ao mesmo tempo (gravar discos, reproducir filmes, descargar ficheiros, etc.). Se o procesador non traballa en paralelo, o sistema operativo ten que xestionar o intercambio entre os procesos para ir executándoos.

Se o procesador traballa en paralelo existen na actualizade catro solucións:

Intel Hyper­Threading Technology (HT Technology)
O sistema operativo ve ao procesador coma dous procesadores virtuais, que lle permiten encargar a cada procesador virtual un proceso distinto.
Procesador con varios núcleos
Fisicamente, dentro do procesador, existen varios núcleos, cada un deles coa súa propia memoria caché e acceso á memoria RAM. Deste xeito o sistema operativo pode encargar procesos distintos a cada procesador e gañar en prestacións.
Procesamento en paralelo
Varios procesadores totalmente independentes traballan en paralelo nun mesmo computador.
Procesamento distribuído
Varios sistemas conectados en rede traballan en paralelo para resolver un problema.