Prev: Fujitsu SPARC VIII-fx HPC-ACE adds instruction prefixes: variable length instructions for RISC!!!
Next: International Journal of Electronics, Information and Systems (IJEIS) Call for Paper
From: jogging on 29 Dec 2009 02:29 Hi,all I have no experience in x86 assembly coding previously, but may need to optimize code on PC. So I begin to read the manuals doawloaded from Intel's website. In the diagram of intel core microarchitecture, there are several execution clusers behind scheduler. It says several execution cluser can execute Integer ALU or Integer SIMD ALU. Do it means that each execution unit can execute part of ALU instructions or each each execution unit can execute all instructions. Do execution units share the same register file or have their own register file each. Does Integer SIMD ALU contain MMX Integer SIMD ALU and SSE Integer SIMD ALU or only SSE Integer SIMD ALU? Thanks Jogging
From: nedbrek on 29 Dec 2009 07:41 Hello, "jogging" <joggingsong(a)gmail.com> wrote in message news:03d9e589-2af5-4eb5-8e2b-64f225b57158(a)a32g2000yqm.googlegroups.com... > > In the diagram of intel core microarchitecture, there are several > execution clusers behind scheduler. It says several execution cluser can > execute Integer ALU or Integer SIMD ALU. > Do it means that each execution unit can execute part of ALU > instructions or each each execution unit can execute all instructions. It's been a while since I've looked at the port layout of Core 2, but in general: - a given port will have a list of instructions it can execute - the "integer execution" ports will execute all the simple instructions (add, or, etc.) Complicated instructions will likely have one port. - they will try to "balance" the ports (mul on one, shift on another) > Do execution units share the same register file or have their own > register file each. The architected registers (E/RAX, E/RBP, etc) are all renamed inside the machine. From your point of view, you want to cleanly specify dependencies. Avoid partial width writes and full width reads (MOV AH=val; ADD AX+=val). If you are done with a partial value, insert a clear instruction (XOR reg,reg). > Does Integer SIMD ALU contain MMX Integer SIMD ALU and SSE Integer > SIMD ALU or only SSE Integer SIMD ALU? It should contain both. IIRC, all the MMX functionality is subsumed into SSE. HTH, Ned
From: Noob on 29 Dec 2009 08:18
jogging wrote: > I have no experience in x86 assembly coding previously, but may need > to optimize code on PC. You might enjoy comp.lang.asm.x86 (moderated). |