From: John Dallman on
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

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
"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

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
"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