Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education

2016-02-01 Thread Mark Morgan Lloyd

Jonas Maebe wrote:

Mark Morgan Lloyd wrote on Mon, 01 Feb 2016:

For a demo computer built using this sort of thing, it's obviously 
trivial to arrange it such that the simulator can load microcode from 
persistent storage, and can do something comparable for a boot loader.


What would be the comparable facility for the pipelined variant? 
Loading lookup tables to decode opcodes to VLIW, and then clocking 
those words through the pipeline?


You could use something FPGA-like to restructure your pipeline, but in 
practice I indeed think many current architectures simply combine 
microprogramming and pipelining, whereby the microprogramming translates 
the externally visible ISA into an internal ISA (VLIW or not), which in 
turn is executed in a pipelined fashion.


Thanks for that. I'm still very much embroiled in porting a B5500 
simulator, I've got it nicely split up into multiple threads (one per 
CPU and IOP) which is something that the original author had a lot of 
difficulty with but am stuck on some obscure opcode failure and will 
have to bite the bullet and ask him for help.


Having got that coded and (hopefully) working, it would be interesting 
to look at how much of the overall framework and peripherals could be 
used for other large-scale computer systems- the sort of things that 
SIMH isn't really a good fit for. I'm rather thinking of Stanford/SLAC 
here, who went through an interesting progression of Burroughs and IBM 
kit in the years before Hennessy did his RISC work there: and that of 
course is where Wirth laid the foundations of Pascal.


But I sincerely hope I'm never bored enough to get too deeply into that :-)

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education

2016-02-01 Thread Mark Morgan Lloyd

Jonas Maebe wrote:

Hi,

In the 90s, a professor and a PhD student at our department developed a 
simulator for pipelined and microprogrammed architectures (based on the 
Hennessy and Patterson DLX architecture), in Delphi. We've used it since 
then every year in the lab sessions for our computer architecuture 
classes. In 2010, I ported the program to FPC and Lazarus and we use it 
compiled for Linux/Qt in a VM nowadays. I did not have any Lazarus 
experience when I started that port (and I'm still far from an expert), 
but the process still went fairly smooth.


I recently asked for and got permission to publish the source code under 
the GPLv3, so here it is: https://github.com/jmaebe/ESCAPE


Jonas, if you're watching I wonder whether I could run one thought past 
you (and possibly your colleagues- with apologies in advance if the 
obvious answer is buried in the source, which I've not gone deeply into 
yet).


For a demo computer built using this sort of thing, it's obviously 
trivial to arrange it such that the simulator can load microcode from 
persistent storage, and can do something comparable for a boot loader.


What would be the comparable facility for the pipelined variant? Loading 
lookup tables to decode opcodes to VLIW, and then clocking those words 
through the pipeline?


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education

2016-02-01 Thread Jonas Maebe


Mark Morgan Lloyd wrote on Mon, 01 Feb 2016:

For a demo computer built using this sort of thing, it's obviously  
trivial to arrange it such that the simulator can load microcode  
from persistent storage, and can do something comparable for a boot  
loader.


What would be the comparable facility for the pipelined variant?  
Loading lookup tables to decode opcodes to VLIW, and then clocking  
those words through the pipeline?


You could use something FPGA-like to restructure your pipeline, but in  
practice I indeed think many current architectures simply combine  
microprogramming and pipelining, whereby the microprogramming  
translates the externally visible ISA into an internal ISA (VLIW or  
not), which in turn is executed in a pipelined fashion.



Jonas
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education

2015-10-20 Thread Skybuck Flying

Looks interesting.

Does this still compile under Delphi ?

I guess I could try it out myself, but a bit busy now...

Bye,
 Skybuck.

-Original Message- 
From: Jonas Maebe

Sent: Monday, 19 October 2015 14:24
To: fpc-other@lists.freepascal.org
Subject: [fpc-other] ESCAPE: Environment for the Simulation of Computer 
Architectures for the Purpose of Education


Hi,

In the 90s, a professor and a PhD student at our department developed
a simulator for pipelined and microprogrammed architectures (based on
the Hennessy and Patterson DLX architecture), in Delphi. We've used it
since then every year in the lab sessions for our computer
architecuture classes. In 2010, I ported the program to FPC and
Lazarus and we use it compiled for Linux/Qt in a VM nowadays. I did
not have any Lazarus experience when I started that port (and I'm
still far from an expert), but the process still went fairly smooth.

I recently asked for and got permission to publish the source code
under the GPLv3, so here it is: https://github.com/jmaebe/ESCAPE


Jonas
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other 


___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education

2015-10-20 Thread Jonas Maebe

Skybuck Flying wrote:

Running into a few issues with Delphi, would be nice if you could fix it
up a bit so that it runs under Delphi ?


I don't have Delphi. I've never even used Delphi. You can get the 
original Delphi version (including some bugs that were fixed later on) 
by checking out one of the first revisions.



Jonas
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education

2015-10-20 Thread Skybuck Flying



-Original Message- 
From: Jonas Maebe

Sent: Tuesday, 20 October 2015 10:45
To: Other FPC related discussions.
Subject: Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer 
Architectures for the Purpose of Education


Skybuck Flying wrote:

Running into a few issues with Delphi, would be nice if you could fix it
up a bit so that it runs under Delphi ?


"
I don't have Delphi. I've never even used Delphi. You can get the
original Delphi version (including some bugs that were fixed later on)
by checking out one of the first revisions.
"

Ok thanks for the tip !

There seems to be a "delphi-version" branch :)/alternative to the master 
branch, I'll try that one :)


Bye,
 Skybuck. 


___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education

2015-10-20 Thread Skybuck Flying

Ok,

I tried and compiled the Delphi version.

Only issue Delphi XE7 ran into was DirectorySeparator.

TPath.DirectorySeparator did not seem to work.

So I replaced it lazy with '\' for now to see if it would compile.

It does compile and run.

However there is some problem with the examples as far as I can tell.

When loading micro.mpr there is a file format error stating that microcode 
may be incorrect.


I may have to try the pre-build executables or try lazarus later on.

Perhaps the Delphi version can be fixed/made compatible with the examples.

When I click on about box in Delphi version it says:

Escape 1.1.6

So it does seem to be a recent version and the same version as example 
material was written for:


http://users.elis.ugent.be/escape/download.html#exercises

Not sure what to make if this little error for now :)

The GUI does look somewhat interesting.

I find the project itself as an introduction to micro architecture a bit 
weird though.


It's very much wired and such.

I would have preferred a general/abstract introduction first and then only 
later a wired like approach as this.


But this is very cool though.

Don't know yet exactly how it works or how "hardcore" it is =D

But it may be of some use some day to understand micro architecture better ! 
;) =D


I guess this was some kind of school/college/university material to teach 
people how to design real chips.


Because for just understanding the software side of it, it would be a bit 
too much overkill ? to much down to the wire ?


For actually hardware/chip design it seems to be just fine ! ;) Though those 
are also programmed in software but ofcourse timing and wires come into play 
with that  as well I would imagine ! ;)


Bye,
 Skybuck.

P.S.: I am to busy leveling up in world of warships nowadays ! LOL :) But 
when the day comes I am done with that... who knows... I might dive into 
this project a little bit more lol :) 


___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other


Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education

2015-10-19 Thread Mark Morgan Lloyd

Jonas Maebe wrote:

Hi,

In the 90s, a professor and a PhD student at our department developed a 
simulator for pipelined and microprogrammed architectures (based on the 
Hennessy and Patterson DLX architecture), in Delphi. We've used it since 
then every year in the lab sessions for our computer architecuture 
classes. In 2010, I ported the program to FPC and Lazarus and we use it 
compiled for Linux/Qt in a VM nowadays. I did not have any Lazarus 
experience when I started that port (and I'm still far from an expert), 
but the process still went fairly smooth.


I recently asked for and got permission to publish the source code under 
the GPLv3, so here it is: https://github.com/jmaebe/ESCAPE


I'll take a look at that when I have time. I'm still working on porting 
the B5500 emulator from Javascript, but there's so many odd peripherals 
in there (i.e. things that looked entirely sensible in 1960, like 
head-per-track discs) not to mention opcodes that change several 
registers in peculiar ways that I'd be surprised if they were directly 
compatible.


--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
___
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other