![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
19/07/2005, 09:30
|
![Avatar de Modern_Crusades](http://static.forosdelweb.com/customavatars/avatar106971_1.gif) | | | Fecha de Ingreso: junio-2005
Mensajes: 620
Antigüedad: 19 años, 7 meses Puntos: 1 | |
Diferencia BASE UNO
Intel ES CISC(SISC, complex intruction set computer, Computadoras con un conjunto de instrucciones complejo) esto quiere decir que la complejidad esta en el microcodigo no en el hardware lo que en teoria a futuro lo hara mas flexible pues con una actualizacion de bios a los chipset intel los procesadores de intel podrian soportar cosas que antes no(de hecho algunos pentium 4lga que no soportaban 64 bits en teoria si los pones en una mother con el chipset 915 ó 925 y le actualizas el bios soporta extensiones de 64 bits).
AMD es RISC(reduced instruction set computer, Computadoras con un conjunto de instrucciones reducido) por lo que recibe informacion en formato SISC luego la pasa a RISC la procesa en formato RISC luego la pasa a SISC, bueno si algo es RISC lo que nos disce es que la complejidad enta en hardware no en el microcodigo por lo que si no puede hacer algo, tendras que emularlo por software ya que el harware no lo vas a cambiar.
Diferencia base 2(derivada de la segunda):
AMD al tener las cosas mas a nivel hardware comunica al procesador directo con casi todos los dispositivos, pero esto hace que si es capaz de soportar algo deba estar creado asi(esto tambien es lo que les da dolores de cabeza para usar DDR2, los mismos de amd lo dicen en algunas conferencias) por eso AMD no puede poner doble nucleo en un socket 754 y necesita de otro, lo cual tiene ventajas y desventajas como en todo.
Intel usa el FSB(front side bus) con el cual se comunica con el chipset y este a su vez se comunica con todos los dispositivos, como el chipset interpreta(esto luego es lo que hace que un intel corra igual con una tarea que con muchas) y envia las instrucciones en microcodigo del procesador pudieron poner un procesador de doble nucleo sobre el mismo socket solo cambiando a un chipset que lo soporte(955 en caso de que sea intel),esto trae de nuevo ventajas y desventajas.
Existen otras diferrencias derivadas de estas y otras mas pequeñas pero las mas fuertes son esas, en el sentido estricto son tecnologias completamente diferentes, que ofrecen soluciones diferentes y han atacado problemas similares de diferente forma como ejemplo:
Intel aumento la cantidad de Ghz en sus procesadores para que pudieran ser mas rapidos(por conecuencia se calienta y jalan mas energia) esto tiene la desventajas fisicas ya mencionandas y otra si la tarea no ocupa todos los ciclos del reloj del procesador no veremos diferencias de poder entre un modelo de 2.0 y otro de 3.2, pero si le ponemos mhucas tareas distintas e instrucciones concurrentes el muchacho corre muy bien ¿Por que? basicamente los intel tiene 9 modulos de operacion(su mejor procesador para pc es de nueve hasta donde se y por el momento los demas son de 6) lo cual quiere decir que por cada ciclo de reloj estos ejecutan 9 instrucciones de maquina(move,add,.., etc si lo ves como ensamblador)asi que si el proceso requiere de 11 primero hara 9 y luego 2 osea 2 ciclos pero tardara lo mismo si el proceso es de 18
en el primero tiene que ejecutar 9 en el segundo 9, al tener pocos modulos de operacion y muchos ciclos por segundo, cuando un proceso requiere de que se realize algo previo para ejecutar la siguiente p/e si tenemos 9 instuccioens en el proceso pero la primera dice que debes multiplicar X, la segunda divir lo que salga, la tercera que lo que salga pasarlo a una direccion de memoria etc.., no puedes hacer la 3 si no estan listos 1 y 2, por lo que la velocidad a las que esta se ejecuten en un ciclo previo es relevante en el tiempo total para resolver la tarea, y cuando abrimos muchas tareas diferentes, estas accesan a areas comunes de nuestra pc, ya sea en hardware o en software (ok?).
AMD decidio que mejor aumentaba el numero de modulos de operacion, teniendo los AMD64 con 12 y versiones con mas modulos(hasta donde se por el momento la version para pc con mas modulos es de 12 y las demas son de 9) lo que implica que si son 11 instuccioens el intel necesita 2 ciclos y el amd 1 si la tarea es de 18 intel y amd necesitan 2 y si dividimos un segundo entre p/e un pentium 4 de 3000Mhz el tiempo del cilco es pequeño(3.3*10^-4) un amd 3000socket 754 esta a 2000Mhz el tiempo de cilo es pequeño pero no tanto como el de intel(5.0*10^-14) y como ya explique hay cosas que si se pueden ejecutar en paralelo y cosas que no, por lo tanto al tener muchos modulos de operacion y estas son lineales o independientes puedes ejecutarlas en un solo ciclo pero si tienes pocos y todos dependen estre si de manera fuerte y estricta(ocurre muy seguido en computacion la mayoria del computo no es paralelizable) lo que tienes que hacer es realizar muchos ciclos lo mas rapido posible.
tomando todo esto como premisa explicare lo que hace el HT de intel, si tenemos un grupo de 14 instrucciones y un procesador de 9 por ciclo y estas son:
1.-leer de memoria ubicacion 1(por darle numero no es asi las direcciones fisicas)
2.-multiplicar el dato anterior por 2.
3.-pasar el resultado a la ubicacion 5
4.leer de memoria ubicacion 3.
5.-multiplicar el dato anterior por 3
6.-pasar el resultado a la ubicacion 4
7.-sumar los dos datos anteriores
8.-pasar el resultado a la ubicacion 6.
9.-hacerle un XOR al dato.
10.-leer un dato de la ubicacion 10.
11.-leer un dato de la ubicacion 11.
12.leer un dato de la ubicacion 12.
13.-grabar el dato leido en el paso 10 en dico.
14.dividir el dato resultante en el paso 9 por 3
ahora si yo fuera un AMD de 12 modulos tomo las primeras 12 y las ejecuto el problema sera que hay alguans que no puedo ejecutar por que dependen de otras asi que las retrasare hasta que se ejecuten las otras eso me va a consumir tiempo de reloj haciendo que el resultado sea:
nota definiremos leer de ubicacion de memoria como leer del cache o registros del procesador donde nadie mas tiene que ver.
ciclo 1:
1
4
10
11
12
ciclo 2:
2
5
ciclo 3:
13
3
6
7
ciclo 4:
8
9
ciclo 5
14
ciclos 5 tiempo total 25.0*10^-4
Intel con HT analiza en un solo paso(como exactamente lo hacen no lo dicen publicamente y no he encontrado informacion)
ciclo 1:
analisis HT
ciclo 2:
1
4
10
11
12
sub ciclo2:(lo que ellos dicen que es simulacion de 2 procesadores)
2
5
13
ciclo 3:
3
6
7
subciclo 3:
8
9
ciclo 4:
14
ciclos 4 tiempo total 13.2*10^-4
como veran tardo un ciclo menos y sus ciclos ademas son mas rapidos eso si hizo un ciclo extra para analizar como optimizar la ejecucion en modo HT(sobretodo si la aplicacion no fue escrita para HT) eso da la muestra de por que el HT no hace al procesador mas rapido en trabajos lineales pero conforme mas procesos concurrentes surjan mas eficiente sera el HT:
ejemplo de como el HT arruina el rendimiento:
tenemos 10 intruciones simples
1.-Leer de ubicacion de memoria 1
2.-Leer de ubicacion de memoria 2
3.-Leer de ubicacion de memoria 3
4.-Leer de ubicacion de memoria 4
5.-Leer de ubicacion de memoria 5
6.-Leer de ubicacion de memoria 6
7.-Leer de ubicacion de memoria 7
8.-Leer de ubicacion de memoria 8
9.-Leer de ubicacion de memoria 9
10.-Leer de ubicacion de memoria 10
AMD tomas las primeras 12 como en este caso son 10 no hay problema
ciclo 1:
1
2
3
4
5
6
7
8
9
10
ciclos 1 tiempo total 5.0*10^-4
Intel haria.
cliclo 1
analisis HT
ciclo 2
1
2
3
4
5
6
7
8
9
como no hay operaciones concurrentes no llamara al subcilco o a esta habilidad.
ciclo 3:
10
ciclos 3 tiempo total 9.9*10^-4 en total si lo hubiera hecho sin HT solo se hubiera tardado 2 cilos dando un total de 6.6*10^-4 eso como ven hace que AMD en aplicaciones lineales patee a Intel hasta cansarse mas a medida que aumenta la concurrencia Intel pateara a AMD y muy duro.
P.D.: segun se y varios profesores y apasionados de hardware me dijeron que Intel pudo crear lo de HT debido a ser CISC ya que existen instrucciones complejas para la operacion y en RISC las instrucciones son simples.
Última edición por Modern_Crusades; 22/07/2005 a las 23:24 |