From: John Dallman on 16 Oct 2006 13:48 In article <1160961414.133402.199680(a)f16g2000cwb.googlegroups.com>, jsavard(a)ecn.ab.ca () wrote: > It isn't a question of ego. Even an implementation of a given ISA > still needs to be designed at the top level as well, and that top > level of design has much in common with designing the basics of > a computer with a new ISA. So, micro-architecture is a level below implementation architecture? --- John Dallman jgd(a)cix.co.uk "Any sufficiently advanced technology is indistinguishable from a well-rigged demo"
From: Nick Maclaren on 17 Oct 2006 04:52 In article <1160970636.656420(a)nnrp1.phx1.gblx.net>, "Dennis M. O'Connor" <dmoc(a)primenet.com> writes: |> "Terje Mathisen" <terje.mathisen(a)hda.hydro.com> wrote ... |> > Dennis M. O'Connor wrote: |> |> >> Architecture is, in general, what the programmers see, and |> >> doesn't change too much from, say, a Pentium III to a Pentium IV |> >> (except the new stuff (WNI) added to P4). |> >> |> >> Microarchitecture is the highest-level of the processor design. |> >> The P3 and P4 micro-architoectures are very different; you'd |> >> hardly know that they were the same ISA to look at them. |> > |> > Even for a (semi-)regular programmer microarchitecture can become very |> > important! |> |> For performance, yes. But if the architects and micro-architects |> have done their jobs right, then program correctness will not |> be affected by micro-architecture. I think we agree on that. Er, no. The boundary of the architecture normally leaves some important aspects unspecified, and that is precisely where the correctness of a program DOES get affected by micro-architecture. Areas where this is important include: Interrupt handling - my pet hobby-horse! Thread control, communication, memory affinity etc. The precise memory model, atomicity, barriers etc. I/O support. Booting, shutdown, virtualisation etc. Theoretically, all of those could be specified in the architecture up to a level of detail that would allow even kernels and drivers to be written without knowing about the micro-architecture, but it has rarely even been attempted. In general, the authors of unprivileged applications don't need to know about those, but that assumes that their language, compiler and run-time system hide the differences from the programmer. That is more common, but not normally done very well :-( Regards, Nick Maclaren.
From: Dennis M. O'Connor on 17 Oct 2006 07:47 "Nick Maclaren" <nmm1(a)cus.cam.ac.uk> wrote ... > "Dennis M. O'Connor" <dmoc(a)primenet.com> writes: >> "Terje Mathisen" <terje.mathisen(a)hda.hydro.com> wrote ... >>> Dennis M. O'Connor wrote: >> >>>> Architecture is, in general, what the programmers see, and >>>> doesn't change too much from, say, a Pentium III to a Pentium IV >>>> (except the new stuff (WNI) added to P4). >>>> >>>> Microarchitecture is the highest-level of the processor design. >>>> The P3 and P4 micro-architoectures are very different; you'd >>>> hardly know that they were the same ISA to look at them. >>> >>> Even for a (semi-)regular programmer microarchitecture can become very >>> important! >> >> For performance, yes. But if the architects and micro-architects >> have done their jobs right, then program correctness will not >> be affected by micro-architecture. I think we agree on that. > > Er, no. [ ... whine whine whine ... ] Er, yes, Nick. Here's the part of the post that immediately followed, which you apparently deleted without reading it: >> That said, it's hard to do something as complex as a >> microprocessor completely right. which comment you essentially echo in: > Theoretically, all of those could be specified in the architecture up > to a level of detail that would allow even kernels and drivers to be > written without knowing about the micro-architecture, but it has rarely > even been attempted. So why say "ER. no" and then agree with the my post, while editing my post to make it seem like you aren't ? Please quit playing stupid little games, Nick. -- Dennis M. O'Connor dmoc(a)primenet.com
From: Nick Maclaren on 17 Oct 2006 08:07 In article <1161085649.773465(a)nnrp2.phx1.gblx.net>, "Dennis M. O'Connor" <dmoc(a)primenet.com> writes: |> >> |> >> For performance, yes. But if the architects and micro-architects |> >> have done their jobs right, then program correctness will not |> >> be affected by micro-architecture. I think we agree on that. |> > |> > Er, no. [ ... whine whine whine ... ] |> |> Er, yes, Nick. Here's the part of the post that immediately |> followed, which you apparently deleted without reading it: |> |> >> That said, it's hard to do something as complex as a |> >> microprocessor completely right. |> |> which comment you essentially echo in: |> |> > Theoretically, all of those could be specified in the architecture up |> > to a level of detail that would allow even kernels and drivers to be |> > written without knowing about the micro-architecture, but it has rarely |> > even been attempted. |> |> So why say "ER. no" and then agree with the my post, |> while editing my post to make it seem like you aren't ? |> Please quit playing stupid little games, Nick. I find it extremely hard to believe that you have the experience you claim, as you seem completely unfamiliar with such important areas. The architects have done their jobs 'right' because they have taken the deliberate and reasonable decision that specifying every jot and tittle of the behaviour under all circumstances is undesirable. In particular, it hamstrings hardware architects and can seriously impact performance. They are fully aware that more detail is needed for the porposes I mentioned, and that is why they explicitly state that they are unspecified IN THE ARCHITECTURE. The micro-architects then document those aspects in the release notes, product specification or whatever they feel like calling it. What you are saying is that the Intel and AMD architects (x86 and IA64), the IBM architects (zOS and POWER), the MIPS and SPARC architects and others have done their jobs wrong. Because, as everyone with relevant experience knows, in the examples I gave, program correstness is indeed affected by micro-architecture. Regards, Nick Maclaren.
From: Dennis M. O'Connor on 17 Oct 2006 08:25
"Nick Maclaren" <nmm1(a)cus.cam.ac.uk> wrote ... [... blah blah blah ...] > What you are saying is that the Intel and AMD architects (x86 and IA64), > the IBM architects (zOS and POWER), the MIPS and SPARC architects and > others have done their jobs wrong. No, Nick, I was saying that they haven't been perfect. No one is, you know, you less than most in fact. -- Dennis M. O'Connor dmoc(a)primenet.com |