Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Yoshiki Ohshima-3
If I'm not mistaken, I cannot find the actual hardware description of
the hardware they used in:

https://dl.acm.org/citation.cfm?id=800542

except that it mentions a microprocessor a few times.  Does anybody
know what was the microprocessor they experimented with?

--
-- Yoshiki

Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

timrowledge


> On 2019-07-22, at 9:16 PM, Yoshiki Ohshima <[hidden email]> wrote:
>
> If I'm not mistaken, I cannot find the actual hardware description of
> the hardware they used in:
>
> https://dl.acm.org/citation.cfm?id=800542
>
> except that it mentions a microprocessor a few times.  Does anybody
> know what was the microprocessor they experimented with?

Fairly sure it was 68000; SUN workstation etc

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Try not to let implementation details sneak into design documents.



Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Yoshiki Ohshima-3
On Mon, Jul 22, 2019 at 9:20 PM tim Rowledge <[hidden email]> wrote:

>
>
>
> > On 2019-07-22, at 9:16 PM, Yoshiki Ohshima <[hidden email]> wrote:
> >
> > If I'm not mistaken, I cannot find the actual hardware description of
> > the hardware they used in:
> >
> > https://dl.acm.org/citation.cfm?id=800542
> >
> > except that it mentions a microprocessor a few times.  Does anybody
> > know what was the microprocessor they experimented with?
>
> Fairly sure it was 68000; SUN workstation etc

That would make sense. How much memory did those machines had around
the time they were working on it?

--
-- Yoshiki

Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Phil B
If the paper was published in '84 that would probably put them on a Sun-1 (released in '82, max 2MB) or *possibly* Sun-2 (released in '83, max 8MB)   However, RAM was relatively expensive (one of the most expensive expansion options) back then and it wasn't common to max it out unless you had deep pockets.

On Tue, Jul 23, 2019 at 12:43 AM Yoshiki Ohshima <[hidden email]> wrote:
On Mon, Jul 22, 2019 at 9:20 PM tim Rowledge <[hidden email]> wrote:
>
>
>
> > On 2019-07-22, at 9:16 PM, Yoshiki Ohshima <[hidden email]> wrote:
> >
> > If I'm not mistaken, I cannot find the actual hardware description of
> > the hardware they used in:
> >
> > https://dl.acm.org/citation.cfm?id=800542
> >
> > except that it mentions a microprocessor a few times.  Does anybody
> > know what was the microprocessor they experimented with?
>
> Fairly sure it was 68000; SUN workstation etc

That would make sense. How much memory did those machines had around
the time they were working on it?

--
-- Yoshiki



Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Tobias Pape
In reply to this post by Yoshiki Ohshima-3
Hi Yoshiki


> On 23.07.2019, at 06:16, Yoshiki Ohshima <[hidden email]> wrote:
>
> If I'm not mistaken, I cannot find the actual hardware description of
> the hardware they used in:
>
> https://dl.acm.org/citation.cfm?id=800542
>
> except that it mentions a microprocessor a few times.  Does anybody
> know what was the microprocessor they experimented with?


I asked Mario and he thinks it could have been a 68020...
But the authors may have more details in this talk: https://youtu.be/sw7TkkiGVIY

Best regards
        -Tobias

Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Michael Rueger

it probably was a 68020.

Back in '83/84 I was part of group of students with Georg Heeg as supervisor who implemented a Smalltalk-80 VM in
Modula-2 (it did 0.6% Dorado).

We used a PCS Cadmus (https://en.wikipedia.org/wiki/Periphere_Computer_Systeme#Cadmus) which I'm pretty sure was 68020.
The department coughed up a major sum of money to upgrade it from 512KB(!) to 1 MB.

So I would guess that would be pretty much what was used at the time.

Hans-Martin Mossner might remember some bits (pun intended) from back then as well.

Cheers

Michael

On 23/07/19 9:22 PM, Tobias Pape wrote:

> Hi Yoshiki
>
>
>> On 23.07.2019, at 06:16, Yoshiki Ohshima <[hidden email]> wrote:
>>
>> If I'm not mistaken, I cannot find the actual hardware description of
>> the hardware they used in:
>>
>> https://dl.acm.org/citation.cfm?id=800542
>>
>> except that it mentions a microprocessor a few times.  Does anybody
>> know what was the microprocessor they experimented with?
>
>
> I asked Mario and he thinks it could have been a 68020...
> But the authors may have more details in this talk: https://youtu.be/sw7TkkiGVIY
>
> Best regards
> -Tobias
>

Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Yoshiki Ohshima-3
In reply to this post by Tobias Pape
Wow.  Thanks Tobias. This looks like a great movie!

On Tue, Jul 23, 2019 at 2:23 AM Tobias Pape <[hidden email]> wrote:

>
> Hi Yoshiki
>
>
> > On 23.07.2019, at 06:16, Yoshiki Ohshima <[hidden email]> wrote:
> >
> > If I'm not mistaken, I cannot find the actual hardware description of
> > the hardware they used in:
> >
> > https://dl.acm.org/citation.cfm?id=800542
> >
> > except that it mentions a microprocessor a few times.  Does anybody
> > know what was the microprocessor they experimented with?
>
>
> I asked Mario and he thinks it could have been a 68020...
> But the authors may have more details in this talk: https://youtu.be/sw7TkkiGVIY
>
> Best regards
>         -Tobias
>


--
-- Yoshiki

Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Yoshiki Ohshima-3
In reply to this post by Michael Rueger
Hi Michael!

0.6% Dorado sounds pretty good!

On Tue, Jul 23, 2019 at 3:55 AM Michael Rueger <[hidden email]> wrote:

>
>
> it probably was a 68020.
>
> Back in '83/84 I was part of group of students with Georg Heeg as supervisor who implemented a Smalltalk-80 VM in
> Modula-2 (it did 0.6% Dorado).
>
> We used a PCS Cadmus (https://en.wikipedia.org/wiki/Periphere_Computer_Systeme#Cadmus) which I'm pretty sure was 68020.
> The department coughed up a major sum of money to upgrade it from 512KB(!) to 1 MB.
>
> So I would guess that would be pretty much what was used at the time.
>
> Hans-Martin Mossner might remember some bits (pun intended) from back then as well.
>
> Cheers
>
> Michael
>
> On 23/07/19 9:22 PM, Tobias Pape wrote:
> > Hi Yoshiki
> >
> >
> >> On 23.07.2019, at 06:16, Yoshiki Ohshima <[hidden email]> wrote:
> >>
> >> If I'm not mistaken, I cannot find the actual hardware description of
> >> the hardware they used in:
> >>
> >> https://dl.acm.org/citation.cfm?id=800542
> >>
> >> except that it mentions a microprocessor a few times.  Does anybody
> >> know what was the microprocessor they experimented with?
> >
> >
> > I asked Mario and he thinks it could have been a 68020...
> > But the authors may have more details in this talk: https://youtu.be/sw7TkkiGVIY
> >
> > Best regards
> >       -Tobias
> >
>


--
-- Yoshiki

Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Tobias Pape
In reply to this post by Yoshiki Ohshima-3

> On 23.07.2019, at 19:28, Yoshiki Ohshima <[hidden email]> wrote:
>
> Wow.  Thanks Tobias. This looks like a great movie!

It's a lecture from Mario Wolczko's VM course
look here for more great videos and material: http://www.wolczko.com/CS294/index.html

Best regards
        -Tobias

>
> On Tue, Jul 23, 2019 at 2:23 AM Tobias Pape <[hidden email]> wrote:
>>
>> Hi Yoshiki
>>
>>
>>> On 23.07.2019, at 06:16, Yoshiki Ohshima <[hidden email]> wrote:
>>>
>>> If I'm not mistaken, I cannot find the actual hardware description of
>>> the hardware they used in:
>>>
>>> https://dl.acm.org/citation.cfm?id=800542
>>>
>>> except that it mentions a microprocessor a few times.  Does anybody
>>> know what was the microprocessor they experimented with?
>>
>>
>> I asked Mario and he thinks it could have been a 68020...
>> But the authors may have more details in this talk: https://youtu.be/sw7TkkiGVIY
>>
>> Best regards
>>        -Tobias




Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Jecel Assumpcao Jr
In reply to this post by Yoshiki Ohshima-3
Yoshiki Ohshima wrote on Tue, 23 Jul 2019 10:29:32 -0700
> 0.6% Dorado sounds pretty good!

That is 160 times slower than a Dorado, which did about 400K bytecodes
per second. So their Modula-2 implementation would do something like
2400 bytecodes per second. Apple Smalltalk on the Lisa was about four
times faster than that, for example.

> On Tue, Jul 23, 2019 at 3:55 AM Michael Ruege wrote:
> >
> >
> > it probably was a 68020.

Sun introduced their first 68020 machines in September of 1985, so
either the 1984 article was based on their earlier 10MHz 68010 computers
or on non Sun machines (which I wouldn't expect given the previous
Berkeley Smalltalk project).

-- Jecel

Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

timrowledge


> On 2019-07-25, at 2:57 PM, Jecel Assumpcao Jr. <[hidden email]> wrote:
>
> Yoshiki Ohshima wrote on Tue, 23 Jul 2019 10:29:32 -0700
>> 0.6% Dorado sounds pretty good!
>
> That is 160 times slower than a Dorado, which did about 400K bytecodes
> per second. So their Modula-2 implementation would do something like
> 2400 bytecodes per second. Apple Smalltalk on the Lisa was about four
> times faster than that, for example.

And by the end of '87 Eliot & I had his old BrouHaHa interpreter running on a 4MHz ARM1 at 25% Dorado and an 8MHz ARM3 at 85%.

I did actually run the old benchmarks on my Pi 3B+ a few days ago to check something and Squeak/Cog/ARM A53 @ 1.4GHz returned somewhere around 180x Dorado. TBH I think we're way past those numbers meaning very much but :-)

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
To iterate is human; to recurse, divine.



Reply | Threaded
Open this post in threaded view
|

Dorados (was: Efficient Implementation of the Smalltalk-80 System: what was the hardware?)

Jecel Assumpcao Jr
Tim Rowledge wrote on Thu, 25 Jul 2019 15:03:56 -0700
> And by the end of '87 Eliot & I had his old BrouHaHa interpreter
> running on a 4MHz ARM1 at 25% Dorado and an 8MHz ARM3 at 85%.

Wouldn't that have been an 8MHz ARM2? That is what is in my Merlin 4
computer (which I tried to turn on the other day to demo to a visitor
and it didn't work). The ARM3 was an ARM2 with 4KB of unified cache and
could run at 24MHz.

> I did actually run the old benchmarks on my Pi 3B+ a few days ago
> to check something and Squeak/Cog/ARM A53 @ 1.4GHz returned
> somewhere around 180x Dorado. TBH I think we're way past those
> numbers meaning very much but :-)

Since I am typing this in Celeste (Squeak 4.1 with an interpreter VM) we
can do 0 tinyBenchmarks => '462511291 bytecodes/sec; 12554373 sends/sec'

This is a quad Intel Core 2 at 2.33GHz.

462511291 / 400000.0 => 1156.2782275

Maybe it would be fun to add a "Dorados" result to tinyBenchmarks?

-- Jecel

Reply | Threaded
Open this post in threaded view
|

Re: Dorados (was: Efficient Implementation of the Smalltalk-80 System: what was the hardware?)

David T. Lewis
On Thu, Jul 25, 2019 at 07:50:41PM -0300, Jecel Assumpcao Jr. wrote:
>
> Maybe it would be fun to add a "Dorados" result to tinyBenchmarks?
>

What a great idea!

I always loved the concept of BogoMips in Linux. I think that a "Dorados"
metric for Squeak would be perfect.

Best of all, we can plan for an annual flame war on the subject of how to
define it correctly :-))

Dave


Reply | Threaded
Open this post in threaded view
|

Re: Dorados (was: Efficient Implementation of the Smalltalk-80 System: what was the hardware?)

timrowledge
In reply to this post by Jecel Assumpcao Jr


> On 2019-07-25, at 3:50 PM, Jecel Assumpcao Jr. <[hidden email]> wrote:
>
> Tim Rowledge wrote on Thu, 25 Jul 2019 15:03:56 -0700
>> And by the end of '87 Eliot & I had his old BrouHaHa interpreter
>> running on a 4MHz ARM1 at 25% Dorado and an 8MHz ARM3 at 85%.
>
> Wouldn't that have been an 8MHz ARM2?

No, it was an ARM1, though looking up my notes reminds me it was a 6MHz cpu not 4MHz. No cache, not even any instruction prefetch but still much faster than anything from intel or motorola of that time.

> That is what is in my Merlin 4
> computer (which I tried to turn on the other day to demo to a visitor
> and it didn't work). The ARM3 was an ARM2 with 4KB of unified cache and
> could run at 24MHz.

Well, yes, ARM3 machines did eventually run up to ~25MHz but the one I had (actually, still have) was a hand built Acorn prototype that originally had the above ARM1 cpu, then got a board mod to run the cpu at 12 whilst the memory stayed at 8, and then a very complex bit of rewiring to put in an ARM prototype at 12MHz. The 4Kb cache made a huge difference. Oh, and both systems had a whopping, colossal, amazing *4* megabytes of memory!


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: HSJ: Hop, Skip and Jump



Reply | Threaded
Open this post in threaded view
|

Re: Dorados (was: Efficient Implementation of the Smalltalk-80 System: what was the hardware?)

timrowledge
In reply to this post by David T. Lewis


> On 2019-07-25, at 4:32 PM, David T. Lewis <[hidden email]> wrote:
>
> On Thu, Jul 25, 2019 at 07:50:41PM -0300, Jecel Assumpcao Jr. wrote:
>>
>> Maybe it would be fun to add a "Dorados" result to tinyBenchmarks?
>>
>
> What a great idea!
>
> I always loved the concept of BogoMips in Linux. I think that a "Dorados"
> metric for Squeak would be perfect.
>
> Best of all, we can plan for an annual flame war on the subject of how to
> define it correctly :-))

Oh no we can't! :-0


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Estne volumen in toga, an solum tibi libet me videre? = Is that a scroll in your toga, or are you just happy to see me?



Reply | Threaded
Open this post in threaded view
|

Re: Efficient Implementation of the Smalltalk-80 System: what was the hardware?

Michael Rueger
In reply to this post by Jecel Assumpcao Jr


On 26/07/19 9:57 AM, Jecel Assumpcao Jr. wrote:
> Yoshiki Ohshima wrote on Tue, 23 Jul 2019 10:29:32 -0700
>> 0.6% Dorado sounds pretty good!
>
> That is 160 times slower than a Dorado, which did about 400K bytecodes

it was dog slow! But, we also converted the original image from 16 bit to 32 bit in the process.

if you wanted a menu you right clicked, turned over the mouse so it would not move, wait until the menu came up etc

But, it worked :-)

One of the group members (forgot the name) later implemented the Deutsch/Schiffman algorithm plus converting to C and
got to 6% IIRC.

Back then about 30-40% Dorado was deemed usable.

Michael


> per second. So their Modula-2 implementation would do something like
> 2400 bytecodes per second. Apple Smalltalk on the Lisa was about four
> times faster than that, for example.
>
>> On Tue, Jul 23, 2019 at 3:55 AM Michael Ruege wrote:
>>>
>>>
>>> it probably was a 68020.
>
> Sun introduced their first 68020 machines in September of 1985, so
> either the 1984 article was based on their earlier 10MHz 68010 computers
> or on non Sun machines (which I wouldn't expect given the previous
> Berkeley Smalltalk project).
>
> -- Jecel
>

Reply | Threaded
Open this post in threaded view
|

Re: Dorados (was: Efficient Implementation of the Smalltalk-80 System: what was the hardware?)

Bert Freudenberg
In reply to this post by timrowledge
On Thu, Jul 25, 2019 at 16:45 tim Rowledge <[hidden email]> wrote:


> On 2019-07-25, at 4:32 PM, David T. Lewis <[hidden email]> wrote:
>
> On Thu, Jul 25, 2019 at 07:50:41PM -0300, Jecel Assumpcao Jr. wrote:
>>
>> Maybe it would be fun to add a "Dorados" result to tinyBenchmarks?
>>
>
> What a great idea!
>
> I always loved the concept of BogoMips in Linux. I think that a "Dorados"
> metric for Squeak would be perfect.
>
> Best of all, we can plan for an annual flame war on the subject of how to
> define it correctly :-))

Oh no we can't! :-0


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Estne volumen in toga, an solum tibi libet me videre? = Is that a scroll in your toga, or are you just happy to see me?



Somebody help me with the Dorado math here interpreting Squeak on JavaScript in a browser on my *phone*.

- Bert - 

--
-- 
Dr. Bert Freudenberg
7275 Franklin Avenue #210
Los Angeles CA 90046
+1 (818) 482-3991
 


Reply | Threaded
Open this post in threaded view
|

Re: Dorados (was: Efficient Implementation of the Smalltalk-80 System: what was the hardware?)

timrowledge


> On 2019-07-26, at 8:38 AM, Bert Freudenberg <[hidden email]> wrote:
>
> Somebody help me with the Dorado math here interpreting Squeak on JavaScript in a browser on my *phone*.

I don't think the tinyBenchmarks is really good enough here; run the proper old benchmark suite.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Fac me cocleario vomere! = Gag me with a spoon!



Reply | Threaded
Open this post in threaded view
|

Re: Dorados (was: Efficient Implementation of the Smalltalk-80 System: what was the hardware?)

Yoshiki Ohshima-3
Ah, speaking of which, I remember adapting The green book benchmarks to Squeak while ago. I’ll try to find it (it might be on SqueakMap, possibly.)

-- Yoshiki

> On Jul 26, 2019, at 11:48 AM, tim Rowledge <[hidden email]> wrote:
>
>
>
>> On 2019-07-26, at 8:38 AM, Bert Freudenberg <[hidden email]> wrote:
>>
>> Somebody help me with the Dorado math here interpreting Squeak on JavaScript in a browser on my *phone*.
>
> I don't think the tinyBenchmarks is really good enough here; run the proper old benchmark suite.
>
> tim
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> Useful Latin Phrases:- Fac me cocleario vomere! = Gag me with a spoon!
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Dorados (was: Efficient Implementation of the Smalltalk-80 System: what was the hardware?)

Jecel Assumpcao Jr
In reply to this post by Bert Freudenberg
Bert Freudenberg wrote on Fri, 26 Jul 2019 08:38:09 -0700
> Somebody help me with the Dorado math here interpreting
> Squeak on JavaScript in a browser on my *phone*.

As you said, there can be many different calculations we can do. I just
divided the number of bytecodes per second by 400000.0 (to have the
result as a Float instead of a Fraction), so

202211609 / 400000.0
is 505.5290225

500 Dorados, which is amazing given that it is Javascript. on a mobile
processor.

Some other interesting numbers we can obtain if we know the clock speed
and power are nano Joules per bytecode and clocks per bytecode.

Here is the clock speed of some machines I tested:

quad Core 2 Q8200: 2000 MHz
dual Core 2 P8600: 2400 MHz
Pentium 4: 3000 MHz
dual Cortex A9: 666 MHz
Pentium II Deschutes: 233 MHz
SiliconSqueak v3: 100 Mhz (simulated)

> http://bitsavers.trailing-edge.com/pdf/xerox/parc/techReports/ISL-83-1_A_Retrospective_on_the_Dorado_A_High-Performance_Personal_Computer.pdf
> http://www.bitsavers.org/pdf/xerox/parc/techReports/CSL-81-1_The_Dorado_A_High-Performance_Personal_Computer_Three_Papers.pdf

The Dorado had a 3 stage piplined microcode engine (7 stage pipelined
memory access) with a 60ns cycle time, so let's call that 17 MHz. I had
always used the number 70ns for the Dorado, which would be around 14MHz.

The power used while running Squeak by some machines I tested:

quad Core 2 Q8200: 116W
dual Core 2 P8600: 53W
Pentium 4: 147W
dual Cortex A9: 13W
Pentium II Deschutes: 43W
SiliconSqueak v3: 9W (FPGA board)

and from one of the papers we have:

Dorado: 2500W

The bytecodes per second numbers for interpreted Squeak were:

quad Core 2 Q8200: 522,715,671
dual Core 2 P8600: 475,394,614
Pentium 4: 251,875,538
dual Cortex A9: 56,586,091
Pentium II: 22,646,850
SiliconSqueak v3: 35,782,023
Dorado: 400,000

which means that the performance in Dorados would be:

quad Core 2 Q8200: 1307
dual Core 2 P8600: 1188
Pentium 4: 629
dual Cortex A9: 141
Pentium II: 56
SiliconSqueak v3: 89
Dorado: 1

and in terms of clocks per bytecode:

quad Core 2 Q8200: 3.83
dual Core 2 P8600: 5.05
Pentium 4: 7.94
dual Cortex A9: 11.77
Pentium II: 10.29
SiliconSqueak v3: 2.79
Dorado: 41.67

and in terms of nano Joules per bytecode:

quad Core 2 Q8200: 222.84
dual Core 2 P8600: 111.25
Pentium 4: 583.05
dual Cortex A9: 233.15
Pentium II: 1,908.18
SiliconSqueak v3: 245.72 (an ASIC should be 10 times better)
Dorado: 6,250,000.00

This is all hardware. What is the effect of compiling? Here are the
numbers of bytecodes per second for Cog (I only was able to run it on a
subset of these machines):

quad Core 2 Q8200: 1,203,290,246
dual Core 2 P8600: 1,372,654,155
Pentium 4: 1,011,857,707

which means in Dorados:

quad Core 2 Q8200: 3008
dual Core 2 P8600: 3431
Pentium 4: 2529

in clocks per bytecode:

quad Core 2 Q8200: 1.66
dual Core 2 P8600: 1.75
Pentium 4: 1.98

and in nano Joules per bytecode:

quad Core 2 Q8200: 96.80
dual Core 2 P8600: 38.53
Pentium 4: 145.13

-- Jecel

12