Re: [fpc-other] ESCAPE: Environment for the Simulation of Computer Architectures for the Purpose of Education
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
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
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
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
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
-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
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
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