Home · Articles · Downloads · Hobby Wear · Forums · Web Links · News CategoriesSaturday, October 20, 2018
Navigation
Home
Articles
Downloads
Hobby Wear
FAQ
Forums
Web Links
News Categories
Contact Us
Photo Gallery
OpenVMS Bigot
Search
Users Online
Guests Online: 2
No Members Online

Registered Members: 7,217
Newest Member: clarencewallace
PdfFactory Pro Enterprise 2.31, MATFOR 4.00.061031 in Lahey Fortran, Adobe PhotoShop 9.0 CS2 oem, Trend Micro InterScan VirusWall 6.0, Adobe Acrobat 7.0 Professional sale, Salon Iris 5.05, Drafix Pro Landscape 11.2, oem Adobe PhotoShop CS 8.0 cheap buy, Catia 5 R12 P3 with SP2, Mcafee Secure Internet Gateway 4.5, oem Adobe Acrobat Professional 8 oem, Visual UML 4.1 Developer Edition, sale Adobe CS3 Design Premium Vol for Mac low price, Nuance Dragon Naturally Speaking 9.0 Professional With SP1, Adobe After Effects Plugins, low price AutoCAD 2006 cheap buy, Avid NewsCutter XP 3.8, The Movie Library 1.7.11, oem Adobe Creative Suite Premium Edition 2.0, ProFlyers 6.0 PDF Forms for Adobe Acrobat, PTC Pro Engineer Routed Systems Designer 5.0, sale DVDXCopy Platinum 4.0.38, CyberBizPlan v1.0.165 WinAll, NeverCenter Silo 1.16b, cheap buy AutoCAD 2005, Norton Save And Restore 11, sale Adobe Creative Suite 3 Design Premium sale, Adobe Premiere Plugins Collection 2007, cheap buy Adobe Creative Suite Premium Edition 2.0 for Mac sale, Active Desktop Calendar 6.5.061124, sale Adobe Acrobat 6.0 Professional, X-Rite MonacoPROFILER Platinum 4.8, EmailUnlimited 6.1 Win98NTME, oem Adobe Photoshop CS3 Extended sale
Sponsors
Island Computer
View Thread
OpenVMS Hobbyist Program | Alpha Systems Forums | Emulated Alpha Forum
Author Working on a new Alpha Emulator...
JonathanBelanger
Member

Posts: 38
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: 53
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: 38
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: 17
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: 38
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: 17
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: 17
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: 17
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: 38
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.
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
June 26 2018
https://www.openvmshobbyi
st.com/forum/viewthread.p
hp?forum_id=10&thread_id=
2363


bhamakripa
June 24 2018
I am trying OpenVMS via SIMH. Need to get OS binaries for v7.3. Registered here but don't have any membership number yet which is needed to get license. Pls suggest what to do. I hardly know anyth

basilh
June 05 2018
Any other forum members in Perth, Australia?

LouF91
April 05 2018
ah maybe they love that!

malmberg
March 24 2018
Probably. More people hang out on the comp.os.vms newsgroup.

vaxpert
March 23 2018
I have a PE42A and other Alpha system stuff for sale. I'm in So California. Any interest out there?

goodbyespy
February 27 2018
To Prohorenko. Please, visit group OpenVMS in the ok.ru

peteherrera
February 24 2018
How much does it cost to buy a complete OpenVMS hardcopy documentation set of the latest version

prohorenko
February 17 2018
Please help to obtain the license on OpenVMS

malmberg
December 12 2017
HPE only makes the most current version of OpenVMS Alpha / IA64 /VAX available to hobbyists. When I had access to the Alliance 1 program it was the same. No public downloads are allowed by HPE.

nmbonao
December 08 2017
Is anybody knows OpenVMS 8.2 version downloadable version? or CD copy? Thank you very much

aarommes
December 02 2017
Bitcoin and Blockchain enthusiasts ( plus distributed computing ) please connec / reply: http://www.openvmshobbyis
t.com/forum/viewthread.ph
p?forum_id=130&thread_id=
2991


malmberg
September 10 2017
https://sourceforge.net/p
/vms-ports/wiki/VMSInstal
lation/ For the most part just use VMS 6.1 media instead of 7.3. But why run the older release?


DoeveR
August 07 2017
Where can I find the write up on running VMS 6.1 using the simh emulator?

Bart
March 20 2017
Happy to have found my password again!

Shoutbox Archive