Jump to content

Talk:Instruction scheduling

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

We have to add techniques here (just a mental note). --euyyn 21:00, 23 June 2006 (UTC)[reply]

algorithm lacking and confusing

[edit]

The algorithm presented is a bit on the primitive side and doesn't really discuss the direction of scheduling (which is a serious omission.) In fact, in my experience (I've written three and looked at others) list scheduling isn't really done like this at all though scheduling heuristics are a good thing to talk about.

Sure it's primitive. It says it's the simplest one, intended to introduce the subject. I totally agree it needs to be elaborated. Feel free to expand. Mauritsmaartendejong 10:03, 17 August 2007 (UTC)[reply]

instruction pipeline ?

[edit]

The definition says that processors with an instruction pipeline benefit from scheduling. Well, the 6502 had an instruction pipeline, but scheduling didn't really help performance. VLIW processors frequently don't have an instruction pipeline, but scheduling is essential. So what is the distinguishing characteristic ? I think we could leave it at 'that improves performance on processors that employ parallel execution of instructions' or something like that. The instruction pipeline link is important of course, but that may be moved to a further introductory section.

Furthermore, the definition says it tries to avoid illegal or semantically ambiguous operations (typically involving subtle instruction pipeline timing issues or non-interlocked resources.. IMHO it should do better than trying. The first bullet is a goal, the second a requirement already implied by without changing the meaning of the code.

On the other hand, instruction scheduling can also be necessary to obtain a correct schedule after instruction selection for a non-interlocked architecture. In that case it's not an optimization, and it probably does change the meaning of the code.

I propose to limit the definition to the bare essence (reordering instructions as used by a compiler), followed by these two important applications.


Mauritsmaartendejong 18:03, 17 July 2007 (UTC)[reply]