Previous | Next --- Slide 7 of 66
Back to Lecture Thumbnails
hohoho

I just want to be clear about the orange box - the decode part. Does this part just translate code written in the upper level languages into machine code? So in order to be efficient on the structure where there is only one decoder and multiple ALU and Execution Content on a single core, does the code have to be identical so that we do not need to decode several times?

funkysenior15

The decoder does not translate high level code, it interprets machine code. In the case of multiple ALUs, all of the ALUs run the same instruction on different pieces of data. So the code is identical (Single Instruction), but it runs on different pieces of data (Multiple Data).

TA-lixf

@hohoho, decoders are essentially the bridge between the ISA and the Microarchitecture (think logic gates) that executes the instructions. So, conceptually it's similar with a compiler, which does exactly what you said -- " translate code written in the upper level languages into machine code", but on a different level. This is a paper about it (different layers of abstractions and execution models and optimizations people have done -- not required by this class but a fun read).