Herramientas de usuario

Herramientas del sitio


clase:asir:fhw:1eval:tema03

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
clase:asir:fhw:1eval:tema03 [2020/09/08 18:37]
127.0.0.1 external edit
clase:asir:fhw:1eval:tema03 [2021/11/04 16:17] (actual)
admin [Ejercicios]
Línea 1: Línea 1:
 ====== 03. Procesadores ====== ====== 03. Procesadores ======
- 
-===== Contenidos ===== 
-  * Procesadores 
-  * Arquitectura del Conjunto de Instrucciones (ISA) 
-  * Ensamblado y código máquina 
-  * Unidades Funcionales 
-  * Microarquitectura 
-  * Fabricantes de Procesadores 
-  * Núcleos e hilos 
-  * Cache 
-  * Frecuencia 
-  * Socket 
- 
  
  
-===== Material =====+====== Material ======
  
-==== Procesadores ====+===== Procesadores =====
  
  
Línea 24: Línea 11:
 El resultado de los cálculos del procesador se puede almacenar en la RAM, en el sistema de Entrada/Salida o dentro del procesador en una pequeña memoria llamada "REGISTROS". Estos registros los usa el programador para almacenar datos temporales y no tener que almacenarlos en la RAM. El resultado de los cálculos del procesador se puede almacenar en la RAM, en el sistema de Entrada/Salida o dentro del procesador en una pequeña memoria llamada "REGISTROS". Estos registros los usa el programador para almacenar datos temporales y no tener que almacenarlos en la RAM.
  
-==== Arquitectura del Conjunto de Instrucciones (ISA) ====+===== Arquitectura del Conjunto de Instrucciones (ISA) =====
  
   * [[https://en.wikipedia.org/wiki/Instruction_set_architecture|Instruction set architecture]]    * [[https://en.wikipedia.org/wiki/Instruction_set_architecture|Instruction set architecture]] 
Línea 39: Línea 26:
 | x86 (tambien llamada IA32) | Intel | PC de hasta de 4 GB de RAM | | x86 (tambien llamada IA32) | Intel | PC de hasta de 4 GB de RAM |
 | x64 (tambien llamada AMD64, EM64T, x86-64, Intel 64)| AMD | PC con mas de 4 GB de RAM | | x64 (tambien llamada AMD64, EM64T, x86-64, Intel 64)| AMD | PC con mas de 4 GB de RAM |
-| ARMv7 | ARM  | Móviles,tablet,etc de hasta de 4 GB de RAM | +| ARMv7 (tambien llamada AArch32)| ARM  | Móviles,tablet,etc de hasta de 4 GB de RAM | 
-| ARMv8 | ARM | Móviles,tablet,etc con mas de 4 GB de RAM | +| ARMv8 (tambien llamada AArch64)| ARM | Móviles,tablet,etc con mas de 4 GB de RAM | 
-| Power | IBM | Estaciones de trabajo RISC, Antiguos Mac y en consolas como PS3 y XBox 360  |+| Power | IBM | Estaciones de trabajo RISC, Antiguos Mac y en consolas como PS3 y XBox 360. [[https://www.vidaextra.com/ps3/la-desquiciante-historia-en-la-que-el-desarrollo-de-cell-sento-la-base-del-procesador-de-xbox-360|La desquiciante historia en la que el desarrollo de Cell, sentó la base del procesador de Xbox 360]]  |
 | SPARC | Oracle/Sun | Estaciones de trabajo RISC | | SPARC | Oracle/Sun | Estaciones de trabajo RISC |
-| RISC-V | RISC-V Fundation | Pretende ser una alternativa a ARM que no pueda ser censurada por los gobiernos. [[https://blog.desdelinux.net/risc-v-pude-ser-la-clave-para-que-huawei-no-sea-afectado-por-el-veto-comercial/|RISC-V pude ser la clave para que Huawei no sea afectado por el veto comercial]] [[https://www.linuxadictos.com/risc-v-cambiara-su-sede-de-usa-a-suiza-por-temores-comerciales.html|RISC-V cambiara su sede de USA a Suiza por temores comerciales]] |+| RISC-V | RISC-V Fundation | Pretende ser una alternativa a ARM que no pueda ser censurada por los gobiernos. [[https://blog.desdelinux.net/risc-v-pude-ser-la-clave-para-que-huawei-no-sea-afectado-por-el-veto-comercial/|RISC-V pude ser la clave para que Huawei no sea afectado por el veto comercial]] [[https://www.linuxadictos.com/risc-v-cambiara-su-sede-de-usa-a-suiza-por-temores-comerciales.html|RISC-V cambiara su sede de USA a Suiza por temores comerciales]] , [[https://hackaday.com/2019/11/12/risc-v-why-the-isa-battles-arent-over-yet/|RISC-V: Why The ISA Battles Aren't Over Yet]] y [[https://www.linuxadictos.com/alibaba-presento-los-nuevos-procesadores-risc-v-xuantie.html|Alibaba presento los nuevos procesadores RISC-V XuanTie]] |
  
 Lo importante de una ISA es que un programa de ordenador solo puede ser escrito para una ISA concreta y no funcionará para otra ISA. Aunque también un programa, debido a que funciona sobre un sistema operativo, el programa debe ser programador pensando tanto en la ISA como en el Sistema Operativo. Lo importante de una ISA es que un programa de ordenador solo puede ser escrito para una ISA concreta y no funcionará para otra ISA. Aunque también un programa, debido a que funciona sobre un sistema operativo, el programa debe ser programador pensando tanto en la ISA como en el Sistema Operativo.
Línea 60: Línea 47:
 Decir que las arquitecturas de PC (x86 y x64) al necesitar procesadores muy "grandes",  tienen un gran consumo energético y son caros, aunque tengan un gran rendimiento. Por ello Apple ha decidido pasar de los procesadores con la ISA de x64 a procesadores con la ISA ARMv8. Decir que las arquitecturas de PC (x86 y x64) al necesitar procesadores muy "grandes",  tienen un gran consumo energético y son caros, aunque tengan un gran rendimiento. Por ello Apple ha decidido pasar de los procesadores con la ISA de x64 a procesadores con la ISA ARMv8.
  
-==== Características de las ISA ====+===== Características de las ISA =====
 Las ISA tiene 2 características principales: Las ISA tiene 2 características principales:
   * Complejidad de las instrucciones:   * Complejidad de las instrucciones:
Línea 77: Línea 64:
  
  
-==== Ensamblador ====+===== Ensamblador =====
 El lenguaje ensamblado es el lenguaje que usamos las personas para escribir programas para un procesador. Prácticamente es como indicar los "números" directamente al procesador pero de una forma mas legible para una persona. El código máquina se refiere a los números directamente que entiende el ordenador y que es lo que se almacena en la RAM. El lenguaje ensamblado es el lenguaje que usamos las personas para escribir programas para un procesador. Prácticamente es como indicar los "números" directamente al procesador pero de una forma mas legible para una persona. El código máquina se refiere a los números directamente que entiende el ordenador y que es lo que se almacena en la RAM.
  
Línea 166: Línea 153:
 <note tip>Si te interesa mas el lenguaje ensamblador. Puedes leerte el libro {{:clase:asir:fhw:1eval:assembly64.pdf |x86-64 Assembly Language Programming with Ubuntu}}</note> <note tip>Si te interesa mas el lenguaje ensamblador. Puedes leerte el libro {{:clase:asir:fhw:1eval:assembly64.pdf |x86-64 Assembly Language Programming with Ubuntu}}</note>
  
-==== Unidades Funcionales ====+<note tip>¿Que relación tiene el siguiente artículo con lo que acabamos de contar? [[https://hardzone.es/noticias/juegos/cyberpunk-2077-amd-problemas-solucion/|Cyberpunk 2077 tiene peor rendimiento en CPUs AMD Ryzen, ¿por qué?]]</note> 
 +===== Unidades Funcionales =====
 Ahora vamos a ver como es el procesador por dentro, como ya hemos indicado , el procesador tiene una serie de registros que vienen determinados por la ISA. Junto con ellos dentro del procesador están las siguientes unidades funcionales: Ahora vamos a ver como es el procesador por dentro, como ya hemos indicado , el procesador tiene una serie de registros que vienen determinados por la ISA. Junto con ellos dentro del procesador están las siguientes unidades funcionales:
  
Línea 195: Línea 183:
  
  
-==== Microarquitectura ====+===== Microarquitectura =====
 Es como los ingenieros diseñan el procesador para ser lo mas rápido posible. En los procesadores de Intel son cada una de las generaciones. 1º Gen, 2º Gen , etc. En los procesadores AMD tenemos Zen, Zen+ , Zen 2, Zen 3. Es como los ingenieros diseñan el procesador para ser lo mas rápido posible. En los procesadores de Intel son cada una de las generaciones. 1º Gen, 2º Gen , etc. En los procesadores AMD tenemos Zen, Zen+ , Zen 2, Zen 3.
  
 Cada año que pasa , se diseñan mejores microarquitecturas para hacer mas rápido el procesador pero su ISA es la misma para de esa forma que los programas sigan sirviendo en el nuevo procesador. Por lo tanto al comprar un procesador lo que nos interesa saber es su microarquitectura ya que eso determina el rendimiento. Cada año que pasa , se diseñan mejores microarquitecturas para hacer mas rápido el procesador pero su ISA es la misma para de esa forma que los programas sigan sirviendo en el nuevo procesador. Por lo tanto al comprar un procesador lo que nos interesa saber es su microarquitectura ya que eso determina el rendimiento.
  
-==== Fabricante ====+===== Fabricante =====
 Es el que finalmente fabrica el procesador (o cualquier otro chip) en las fábricas de procesadores. No tiene porque ser la misma empresa que diseña la microarquitectura o crea la ISA. Es el que finalmente fabrica el procesador (o cualquier otro chip) en las fábricas de procesadores. No tiene porque ser la misma empresa que diseña la microarquitectura o crea la ISA.
  
Línea 218: Línea 206:
 | Snapdragon 865 | ARMv8 | ARM | Qualcomm | TSMC | | Snapdragon 865 | ARMv8 | ARM | Qualcomm | TSMC |
 | A11 | ARMv8 | ARM | Apple | TSMC | | A11 | ARMv8 | ARM | Apple | TSMC |
-| Exynos 990 | ARMv8 | Samsung | Samsung |+| Exynos 990 | ARMv8 | ARM |Samsung | Samsung |
  
  
Línea 234: Línea 222:
  
  
-==== Núcleos e hilos ====+===== Núcleos e hilos =====
 Hemos visto como es un procesador o CPU, pero ahora hay que distinguir entre los siguientes 3 conceptos: Hemos visto como es un procesador o CPU, pero ahora hay que distinguir entre los siguientes 3 conceptos:
   * Procesador o CPU   * Procesador o CPU
Línea 247: Línea 235:
  
  
-Por lo que en una placa se pueden poner uno o mas procesadores, cada procesador tiene uno o mas núcleos y cada núcleo puede ejecutar uno o mas hilos+Por lo que en una placa se pueden poner uno o mas procesadores, cada procesador tiene uno o mas núcleos y cada núcleo puede ejecutar uno o mas hilos.
  
 +==== La ley de Amdahl ====
 +La [[https://es.wikipedia.org/wiki/Ley_de_Amdahl|Ley de Amdahl]], dice que según lo paralelizable que sea un programa, hay un límite al Nº de núcleos que se necesitan. Es decir , que aunque se añadan mas núcleos no va a mejorar prácticamente el rendimiento. Por lo que que tener mas núcleos no significa que siempre un procesador sea mas rápido.
  
 +{{:clase:asir:fhw:1eval:ley-amdahl.png|}}
  
-==== Cache ====+ 
 + 
 +===== Cache =====
 La cache es como una pequeña memoria RAM que se encuentra dentro del procesador. La cache es fundamental en cualquier procesador ya que la RAM es demasiado lenta para enviar los datos y las instrucciones que necesita un procesador ya que el procesador funciona muy muy rápido en comparación con la RAM. La cache almacena las instrucciones y/o datos que mas usa la CPU y de esa forma no tiene que perder el tiempo en ir a buscarlo a la RAM. La cache es como una pequeña memoria RAM que se encuentra dentro del procesador. La cache es fundamental en cualquier procesador ya que la RAM es demasiado lenta para enviar los datos y las instrucciones que necesita un procesador ya que el procesador funciona muy muy rápido en comparación con la RAM. La cache almacena las instrucciones y/o datos que mas usa la CPU y de esa forma no tiene que perder el tiempo en ir a buscarlo a la RAM.
  
Línea 270: Línea 263:
  
  
-==== Frecuencia ====+===== Frecuencia =====
 Otra característica importante del procesador en la Frecuencia a la que funciona, que se mide en GHz. Es decir la velocidad a la que ejecuta cada instrucción Otra característica importante del procesador en la Frecuencia a la que funciona, que se mide en GHz. Es decir la velocidad a la que ejecuta cada instrucción
  
 Es importante destacar que no se puede comparar directamente la frecuencia de dos procesadores con microarquitectura distinta. Aunque uno vaya mas rápido que el otro (a mayor frecuencia) no significa que vaya mas rápido.Eso es así ya que por ejemplo la FPU de un proceesador a 2,2 Ghz podría ser mucho mas rápida que una la de otro procesador a 2,5 GHz Es importante destacar que no se puede comparar directamente la frecuencia de dos procesadores con microarquitectura distinta. Aunque uno vaya mas rápido que el otro (a mayor frecuencia) no significa que vaya mas rápido.Eso es así ya que por ejemplo la FPU de un proceesador a 2,2 Ghz podría ser mucho mas rápida que una la de otro procesador a 2,5 GHz
  
-==== Socket ====+===== Socket =====
 El socket (o Zócalo en castellano) es "el conector" donde se pone el procesador. El socket se encuentra en la placa base. Los procesadores están diseñador para una forma de socket en concreto. Varios modelos de procesadores pueden diseñarse para el mismo modelo de Socket. Pero lo contrario no es cierto. Además los Sockets entre fabricantes suelen ser incompatibles. En el siguiente artículo se pueden ver para cada procesador el socket que usa: [[https://www.tomshardware.com/reviews/cpu-socket-definition,5758.html|What Is a CPU Socket? A Basic Definition]] El socket (o Zócalo en castellano) es "el conector" donde se pone el procesador. El socket se encuentra en la placa base. Los procesadores están diseñador para una forma de socket en concreto. Varios modelos de procesadores pueden diseñarse para el mismo modelo de Socket. Pero lo contrario no es cierto. Además los Sockets entre fabricantes suelen ser incompatibles. En el siguiente artículo se pueden ver para cada procesador el socket que usa: [[https://www.tomshardware.com/reviews/cpu-socket-definition,5758.html|What Is a CPU Socket? A Basic Definition]]
  
Línea 283: Línea 276:
   * Socket PGA: Tiene los pines en el procesador    * Socket PGA: Tiene los pines en el procesador 
   * Socket LGA: Tiene los pines en la placa base   * Socket LGA: Tiene los pines en la placa base
 +
 +La tendencia es a que se use LGA ya que permite mas densidad de pines. Actualmente (2021) AMD usa PGA e Intel PGA.
  
 Mas información  en [[https://hardzone.es/reportajes/comparativas/socket-pga-lga-placa-base/|¿Qué tipo de socket es mejor a la hora de comprar tu placa base?]].  Mas información  en [[https://hardzone.es/reportajes/comparativas/socket-pga-lga-placa-base/|¿Qué tipo de socket es mejor a la hora de comprar tu placa base?]]. 
Línea 357: Línea 352:
  
  
-==== Ejercicio 6 ==== 
-Usando los conceptos aprendidos en clase, explica las diferencias entre una CPU y los siguientes tipos de procesadores: 
-  * GPU 
-  * iGPU 
-  * APU 
-  * IPU 
  
-==== Ejercicio ====+ 
 +==== Ejercicio ====
 Indica para las siguientes ISA de ARM si son ISAs de 32 bits o 64 bits: Indica para las siguientes ISA de ARM si son ISAs de 32 bits o 64 bits:
   * ARMv6   * ARMv6
Línea 373: Línea 363:
 Y indica también la máxima RAM a la que puede acceder cada uno de ellos. Y indica también la máxima RAM a la que puede acceder cada uno de ellos.
  
-==== Ejercicio ==== +==== Ejercicio ==== 
-En la página de descarga de [[https://www.oracle.com/es/java/technologies/javase/javase-jdk8-downloads.html|Java del JDK 8]] y de [[https://www.oracle.com/java/technologies/javase/jdk14-archive-downloads.html|Java del JDK 14]], indica para que combinación de ISA y Sistemas operativos están disponibles cada una de las versiones.+En la página de descarga de [[https://www.oracle.com/es/java/technologies/javase/javase-jdk8-downloads.html|Java del JDK 8]] y de [[https://www.oracle.com/java/technologies/javase/jdk14-archive-downloads.html|Java del JDK 14]], indica para que ISA's está disponibles cada una de las versiones. 
  
  
clase/asir/fhw/1eval/tema03.1599583036.txt.gz · Última modificación: 2020/09/08 18:37 por 127.0.0.1