Home · Articles · Downloads · Hobby Wear · Forums · Web Links · News CategoriesSunday, February 05, 2023
Navigation
Home
Articles
Downloads
Hobby Wear
FAQ
Forums
Web Links
News Categories
Contact Us
Photo Gallery
OpenVMS Bigot
Search
Users Online
Guests Online: 14
No Members Online

Registered Members: 7,681
Newest Member: MrManul
Sponsors
Island Computer
View Thread
OpenVMS Hobbyist Program | Alpha Systems Forums | Emulated Alpha Forum
Author Working on a new Alpha Emulator...
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on June 23 2017 07:42
I thought I'd add this here.

I have recently starting writing my own Alpha AXP emulator (a 21264). The ones out there are great, but many of them were not designed to be multithreaded, and have this kind of hack threading into the implementation. The one I'm writing, will be as accurate an implementation of the 21264 as I can make it. It will be able to execute 4 instructions simultaneously, just like the real CPU. I'm also going to take a page out of the alternative meaning of the acronym RISC (Relegate Important Stuff to Compilers). I have seen quite a bit of other code that has tried to best-guess the compile, but using masks and shifts and whatnot (it also make debugging harder). We'll see how far I get, but I'm having a ball writing it (I always said, that if I were not writing code for my job, I'd do it as a hobby -- so that's what I'm doing).

~Jon.
Author RE: Working on a new Alpha Emulator...
John Manger
Member

User Avatar

Posts: 59
Location: nr Heathrow, Middlesex, UK
Joined: 18.03.10
Posted on September 08 2017 21:50
It sounds very interesting.
Any word on progress ? Got it booting as an Alpha yet ?

John M
Author RE: Working on a new Alpha Emulator...
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on September 28 2017 08:59
Not booted yet. There is quite a bit of coding to be implemented, I have parts of the instruction, integer, floating-point, and data cache implemented and tested (the IEEE floating point instructions passed 100% of the IEEE test cases). I have not yet, introduced threads (and each CPU will require 9 of them). The system interface is also not yet implemented. The system interface contains all the devices associated with a computer system (disk, memory, network, console, etc. - each being yet another thread). I am hoping to have it booted from the SROM (pre-console system) in the next few months.

I you want to see what I have done, thus far, you can go to GitHub and search for DECemu.

~Jon.
Author RE: Working on a new Alpha Emulator...
goodbyespy
Member

Posts: 19
Location: Saint Petersburs, Russia.
Joined: 17.11.17
Posted on February 25 2018 20:17
Hello Jonathan! Can I help you with anything?
Author RE: Working on a new Alpha Emulator...
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on March 15 2018 13:58
I don't have first boot, yet. But I do have the following:

1) An XML coded configuration file has been created.
2) An Excel spreadsheet that can generate Alpha instructions, including branches.
3) A utility to take a CSV output from #2 and generate binary code in SROM format.
4) An Alpha AXP 21264 Emulator, CPU only. Does not have a system, so no disks or memory.
5) The CPU emulator does the following:
5a) Load in configuration file.
5b) Create and initialize CPU data structure.
5c) Create 1 Cbox, 1 Mbox, 1 Ibox, 4 Ebox, and 2 Fbox threads
5d) Cbox initializes the CSRs from a file (defined in configuration)
5e) Cbox initializes IPRs for Mbox, Fbox, Ebox, and Ibox
5f) Cbox loads in instructions from the SROM (generated in step #3) into Icache
5g) Cbox sets PC to first instruction in step #5f
5h) Cbox set CPU state to Running, causing all the other threads to execute
5i) Ibox reads first 4 instructions from Icache
5j) For each of these Ibox decodes each instruction and performs branch prediction
5k) Each instruction is inserted it on IQ or FQ prior to decoding the next instruction
5l) Ibox signals either the Ebox or Fbox that it has an instruction to execute
5m) Ibox determines if there are any instructions that can be retired (in instruction order)
5n) Ibox also determines if there was a branch mispredict or event and rolls back speculative execution
5o) Ebox or Fbox determines if all the registers for any queued instruction are ready
5p) If 5m is true, then instruction is dequeued and executed

So, it is able to simultaneously, decode instructions, perform speculative execution of up to 6 instructions simultaneously, and retire them in instruction order. It has room for up to 80 instructions inflight at anyone time. It is also ready to perform memory access simultaneously with instruction execution. There are still a few things not yet implemented, such as memory barriers, scoreboarding IPR access, and performance counters. But when it attempts to load a memory reference, it does call through the Mbox and Cbox to request memory from the system. I'm not sure how fast it is, as I have logging functionality turned on.

I'm going to finish the not yet implemented items above and then start on the system component, which will be based on the typhoon/tsunami chipset.

~Jon.
Edited by JonathanBelanger on March 15 2018 13:58
Author RE: Working on a new Alpha Emulator...
gtackett
Member

Posts: 9
Location: Virginia Piedmont
Joined: 06.02.08
Posted on March 19 2018 02:36
Sounds exciting. Having an aging DS10 at home that I hope to replace with an emulator some day, I wish I knew enough and had the time to be of help, but I clearly don't. I do want to follow you progress, though. Good luck!
finarfin
Author RE: Working on a new Alpha Emulator...
goodbyespy
Member

Posts: 19
Location: Saint Petersburs, Russia.
Joined: 17.11.17
Posted on April 06 2018 03:12
Hello Jonathan! I've cloned a new Alpha Emulator and now I am trying to compile it under FreeBSD 10.3 and 11.1 stable. I am correcting Makefile to compile a new Alpha Emulator under FreeBSD.
Author RE: Working on a new Alpha Emulator...
goodbyespy
Member

Posts: 19
Location: Saint Petersburs, Russia.
Joined: 17.11.17
Posted on April 12 2018 03:07
Hello Jonathan! I am trying to compile a new Alpha Emulator. Well, some source files has "bad" symbols, like 0x96, 0xBD, 0x97, 0x92, 0x93, 0x94. For example AXP_21274_Dchip.h has 0x96, 0x97, 0x92, 0x93 and 0x94 symbols. To compile under FreeBSD 10.3 stable I have replaced this symbols. After that I have compiled only one source file AXP_21264_CPU.c and I've got next errors:

cc AXP_21264_CPU.c -D_AXP_COMPILER_PRESENT_=1 -I ../comutl -I ../system -I ../cpu -D__x86_64__=1
In file included from AXP_21264_CPU.c:32:
In file included from ../cpu/AXP_21264_CPUDefs.h:30:
In file included from ../comutl/AXP_Configure.h:43:
../comutl/AXP_Utility.h:95:18: error: __int128 is not supported on this target
typedef unsigned __int128 u128; /* 16 bytes (128 bits) in length */
^
../comutl/AXP_Utility.h:100:9: error: __int128 is not supported on this target
typedef __int128 i128; /* 16 bytes (128 bits) in length */
^
In file included from AXP_21264_CPU.c:32:
In file included from ../cpu/AXP_21264_CPUDefs.h:31:
In file included from ../cpu/AXP_21264_CPU.h:100:
../cpu/AXP_21264_CboxDefs.h:68:10: fatal error: 'AXP_21264_to_System.h' file not found
#include "AXP_21264_to_System.h"
^
3 errors generated.

Can you help me with advice?

~Oleg
Edited by goodbyespy on April 13 2018 00:42
Author RE: Working on a new Alpha Emulator...
goodbyespy
Member

Posts: 19
Location: Saint Petersburs, Russia.
Joined: 17.11.17
Posted on April 14 2018 00:55
Hello Jonathan! I have moved on the X86_64 (FreeBSD into virtualbox on MAC) and compiled one source file. I've got:
cc -c AXP_21264_CPU.c -D_AXP_COMPILER_PRESENT_=1 -I ../comutl -I ../system -I ../cpu
In file included from AXP_21264_CPU.c:32:
In file included from ../cpu/AXP_21264_CPUDefs.h:31:
In file included from ../cpu/AXP_21264_CPU.h:100:
../cpu/AXP_21264_CboxDefs.h:68:10: fatal error: 'AXP_21264_to_System.h' file not found
#include "AXP_21264_to_System.h"
^
1 error generated.

I couldn't found header file AXP_21264_to_System.h.

~Oleg
Author RE: Working on a new Alpha Emulator...
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on August 11 2018 04:18

goodbyespy wrote:
I couldn't found header file AXP_21264_to_System.h.
~Oleg


Hi Oleg,

I have obsoleted that particular header file and replaced it with one in the cpu source files and one in the system source files. Please pull a more recent update from GitHub (it should compile, but I have made some changes that may cause compiler issues).

~Jon.
Author RE: Working on a new Alpha Emulator...
malmberg
Moderator

Posts: 530
Joined: 15.04.08
Posted on July 16 2019 03:14
Found an emulator on GitHUB with DECaxp.

I recommend that you change the configuration XML input file to use https://libvirt.org/formatdomain.html format.

This will make your emulator configurable by standard emulation and cloud management tools, many of them free and quite nice.

It looks like various parts of libvirt will work in a Cygwin environment.

For Linux, my target runtime environment would be under the LXD container project. This is how I run SimH/VAX now.
Author RE: Working on a new Alpha Emulator...
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on July 20 2019 02:22
I was actually thinking about going over to using JSON format. I'll have to look into this. It really depends upon what is available in libvirt to assist in my emulator. Right now, I'm on a bit of a hiatus, to clear my mind (I was spending too much time in the weeds and missing the bigger picture). I'm actually redesigning the caching architecture (I think I can make it more efficient and faster).

~Jon.
Author RE: Working on a new Alpha Emulator...
SysMan-One
Member

Posts: 1
Joined: 29.01.14
Posted on October 04 2019 04:29
Hi There!

What is a reason to use XML-shit instead of TXT ?
Author RE: Working on a new Alpha Emulator...
JonathanBelanger
Member

Posts: 42
Joined: 09.06.16
Posted on January 20 2020 11:03
I used XML because I can read in a configuration as a document and not have to parse everything. Part of the reason to go over to JSON format is that I can have a schema that can validate the configuration file and generate more reasonable error messages.

BTW: After a siesta where I write an SDL compiler and started a BLISS one, I'm back to working on the AXP. I also moved the project over to GitLab, as GitHub was going to charge me because I was using GIT-LFS.

~Jon.
Author RE: Working on a new Alpha Emulator...
akhfar
Member

Posts: 5
Joined: 03.05.20
Posted on May 05 2020 14:42
how about SImh Alpha Emulator??
Author RE: Working on a new Alpha Emulator...
malmberg
Moderator

Posts: 530
Joined: 15.04.08
Posted on May 09 2020 16:59
http://mailman.trailing-edge.com/pipermail/simh/2016-October/015894.html appears to be the last post about SimH Alpha.
Jump to Forum:
Login
Username

Password



Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.
Member Poll
Are you going to OpenVMS Boot Camp 2016?

Yes

No

You must login to vote.
Shoutbox
You must login to post a message.

malmberg
August 04 2022
No more VAX hobbyist licenses. Community licenses for Alpha/IA64/X86_64 VMS Software Inc. Commercial VMS software licenses for VAX available from HPE.

ozboomer
July 20 2022
Just re-visiting.. No more hobbyist licenses? Is that from vmssoftware.com, no 'community' licenses?

valdirfranco
July 01 2022
No more hobbyist license...sad

mister_wavey
February 12 2022
I recall that the disks failed on the public access VMS systems that included Fafner

parwezw
January 03 2022
Anyone know what happened to FAFNER.DYNDS.ORG? I had a hobbyist account here but can longer access the site.

gtackett
October 27 2021
Make that DECdfs _2.1A_ for Vax

gtackett
October 27 2021
I'm looking for DECdfs V2.4A kit for VAX. Asking here just in case anyone is still listening.

MarkRLV
September 17 2021
At one time, didn't this web site have a job board? I would love to use my legacy skills one last time in my career.

malmberg
January 18 2021
New Hobbyist PAKs for VAX/VMS are no longer available according to reports. Only commercial licenses are reported to be for sale from HPE

dfilip
January 16 2021
Can someone please point me to hobbyist license pak? I'm looking for VAX/VMS 7.1, DECnet Phase IV, and UCX/TCPIP ... have the 7.1 media, need the license paks ... thanks!

Bart
October 16 2020
OpenVMS, and this website!

malmberg
September 05 2020
VSI community non-commercial licenses for AXP/IA64 are available now.

malmberg
September 05 2020
See the forum about licensing. Don't know if HPE hobby licenses still being issued. Commercial licenses still being sold.

silfox70
September 01 2020
I need the license for OpenVMS7.3. Where can I find them?

malmberg
August 29 2020
Eisner, which is currently being moved, got an SSH update and the keys were updated to more modern encryption standards.

Shoutbox Archive