From: Mel on
Grant Edwards wrote:

> On 2010-05-20, Paul E. Bennett <Paul_E.Bennett(a)topmail.co.uk> wrote:

>> That takes me back to the mini-computer era. Especially the clients
>> that needed it built into their installation because they wanted to
>> be extremely confident that their system was calculating the right
>> results.
>>
>> It was just a case of checking that all the right flags were set
>> after a specific set of data was put through the instructions.
>
> How do you do that without assuming that instructions are executed
> properly? Is there a second, independantly designed and built
> processor whose results are compared with the first one?
>
> Or is there some reason to beleive that some particular subset of the
> CPU instructions can be relied upon but the rest cannot?

ISTR one would debug the minimum bootloader -- the one-card boot or the
three-card boot -- using the console switches. Then the test program would
have some kind of hope of running to test everything else.

Mel.
>


From: Walter Banks on


Grant Edwards wrote:

> How do you do that without assuming that instructions are executed
> properly? Is there a second, independantly designed and built
> processor whose results are compared with the first one?
>
> Or is there some reason to beleive that some particular subset of the
> CPU instructions can be relied upon but the rest cannot?

One approach was implementing a finite state machine that would
not exit unless instruction test or some defined subset worked. I
worked a minicomputer instruction set way back and got the fun
job writing some of the instruction tests. Plenty of coffee and late
nights. The real task was actually making sure that we could not
get a false positive and trust a failed computer.

Regards,


Walter..
--
Walter Banks
Byte Craft Limited
http://www.bytecraft.com







From: Grant Edwards on
On 2010-05-20, Walter Banks <walter(a)bytecraft.com> wrote:
> Grant Edwards wrote:
>
>> How do you do that without assuming that instructions are executed
>> properly? Is there a second, independantly designed and built
>> processor whose results are compared with the first one?
>>
>> Or is there some reason to beleive that some particular subset of the
>> CPU instructions can be relied upon but the rest cannot?
>
> One approach was implementing a finite state machine that would
> not exit unless instruction test or some defined subset worked. I
> worked a minicomputer instruction set way back and got the fun
> job writing some of the instruction tests. Plenty of coffee and late
> nights. The real task was actually making sure that we could not
> get a false positive and trust a failed computer.

It sounds like that may have actually been somewhat useful.

I can't say the same for the vast majority of the "self test" code
I've seen on micro-controller systems (without any redundancy). The
usual methodology seemd to be:

1) Assume that 99.9%[1] of the hardware works

2) Spend weeks writing code to try to test the remaining .1%

Since there was no way to force failures in the 0.1% you could test,
you never knew if the tests you did write worked.

[1] Or whatever percentage was required to boot up and start running
code.

--
Grant Edwards grant.b.edwards Yow! BARRY ... That was
at the most HEART-WARMING
gmail.com rendition of "I DID IT MY
WAY" I've ever heard!!
From: Theo Markettos on
D Yuniskis <not.going.to.be(a)seen.com> wrote:
> Hmmm... ages ago (minicomputer era) we would have test routines
> that exercised each of the instructions and addressing modes in
> a processor. To verify the processor "worked". Back then, the
> processor was many square inches (feet, in many cases!) so
> different parts of the board physically were responsible for
> different features (e.g., you could lose one slice of a register
> file while nothing else was affected in the processor).

Here's a chunk of ARM code, that tested IO on ARM2 and ARM3 (and perhaps
ARM1 too if its origins date back that far, which it might). It's designed
to only use three instructions - ADD, LDR and B - to minimise use of
instructions that haven't been verified yet:

https://www.riscosopen.org/viewer/view/castle/RiscOS/Sources/Kernel/OldTestSrc/Attic/ExtIO?rev=4.1.1.1

(If there ever was the processor test mentioned, it never made it to CVS)

Theo
From: Paul E. Bennett on
Grant Edwards wrote:

> On 2010-05-20, Paul E. Bennett <Paul_E.Bennett(a)topmail.co.uk> wrote:
>> KK6GM wrote:
>>
>>> Over at avrfreaks.net the question of periodic instruction set
>>> testing has come up, in particular as a requirement (apparently, it's
>>> not exactly clear) in UL1998. I've never heard of such a thing. Can
>>> anybody tell me anything about this subject, such as, is it actually
>>> done, and if so, how?
>>
>> That takes me back to the mini-computer era. Especially the clients
>> that needed it built into their installation because they wanted to
>> be extremely confident that their system was calculating the right
>> results.
>>
>> It was just a case of checking that all the right flags were set
>> after a specific set of data was put through the instructions.
>
> How do you do that without assuming that instructions are executed
> properly? Is there a second, independantly designed and built
> processor whose results are compared with the first one?
>
> Or is there some reason to beleive that some particular subset of the
> CPU instructions can be relied upon but the rest cannot?

There was always an expectation that you would get a match if the
instruction under test toggled the processor status flags to the expected
particular state and no match would mean there was a problem. There was a
hierarchy of instruction test order and with the processors I was dealing
with you had a few ALU operations to test out first before you started
memory testing. Then would come the more complex instructions.

It was all so long ago and I would be delving into ancient history for the
details (assuming I had kept those particular notes).

--
********************************************************************
Paul E. Bennett...............<email://Paul_E.Bennett(a)topmail.co.uk>
Forth based HIDECS Consultancy
Mob: +44 (0)7811-639972
Tel: +44 (0)1235-510979
Going Forth Safely ..... EBA. www.electric-boat-association.org.uk..
********************************************************************