PCXT Core 10Mhz CPU Speed Possible?

User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

kitune-san wrote: Tue Nov 15, 2022 12:56 pm Now that I know why the CGA is not working well, I have created a 25MHz (cycle accurate disabled) test version.
It may not be the true 25 MHz because one additional clock was added during memory readout.
However, this is the maximum speed that can be achieved with the current MiSTer_PCXT.

https://github.com/kitune-san/PCXT_MiST ... 25mhz-test
Thanks!. I have carried out tests with CheckIT 3.0, and there does not seem to be a significant increase in performance, perhaps there is a bottleneck somewhere...


86Box with PC/AT 286 model

Code: Select all

PCAT 6MHz -> 1493 Dhrystones
PCAT 8MHz -> 1991 Dhrystones
PCAT 6MHz.png
PCAT 6MHz.png (7.63 KiB) Viewed 3393 times
PCAT 8MHz.png
PCAT 8MHz.png (7.6 KiB) Viewed 3393 times
Core PCXT

Code: Select all

PCXT Max 14MHz -> 837 Dhrystones (PCAT 3.36MHz equivalent)
PCXT Max 25MHz -> 918 Dhrystones (PCAT 3.69MHz equivalent)
PCXT - Max 14MHz.png
PCXT - Max 14MHz.png (101.22 KiB) Viewed 3393 times
PCXT - Max 25MHz.png
PCXT - Max 25MHz.png (101.2 KiB) Viewed 3393 times
dmckean
Posts: 310
Joined: Sat Jan 16, 2021 7:03 am
Has thanked: 396 times
Been thanked: 95 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by dmckean »

spark2k06 wrote: Tue Nov 15, 2022 1:32 pm
kitune-san wrote: Tue Nov 15, 2022 12:56 pm Now that I know why the CGA is not working well, I have created a 25MHz (cycle accurate disabled) test version.
It may not be the true 25 MHz because one additional clock was added during memory readout.
However, this is the maximum speed that can be achieved with the current MiSTer_PCXT.

https://github.com/kitune-san/PCXT_MiST ... 25mhz-test
Thanks!. I have carried out tests with CheckIT 3.0, and there does not seem to be a significant increase in performance, perhaps there is a bottleneck somewhere...


86Box with PC/AT 286 model

Code: Select all

PCAT 6MHz -> 1493 Dhrystones
PCAT 8MHz -> 1991 Dhrystones
PCAT 6MHz.png
PCAT 8MHz.png

Core PCXT

Code: Select all

PCXT Max 14MHz -> 837 Dhrystones (PCAT 3.36MHz equivalent)
PCXT Max 25MHz -> 918 Dhrystones (PCAT 3.69MHz equivalent)
PCXT - Max 14MHz.png
PCXT - Max 25MHz.png
This looks like what I would expect.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by kitune-san »

spark2k06 wrote: Tue Nov 15, 2022 1:32 pm
Thanks!. I have carried out tests with CheckIT 3.0, and there does not seem to be a significant increase in performance, perhaps there is a bottleneck somewhere...
Well, there are differences such as machine cycle and bus control (8288 and 82288).
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

kitune-san wrote: Tue Nov 15, 2022 2:13 pm
spark2k06 wrote: Tue Nov 15, 2022 1:32 pm
Thanks!. I have carried out tests with CheckIT 3.0, and there does not seem to be a significant increase in performance, perhaps there is a bottleneck somewhere...
Well, there are differences such as machine cycle and bus control (8288 and 82288).
Agreed. So it's normal, right? we assume that it can't increase performance any further for this core? And on the other hand, is the core stable in general terms at 25MHz and 14.318MHz, both without cycle accurate? Or would it be preferable to stay at 14.318MHz given the little improvement achieved?
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by kitune-san »

hmm.. I don't know what to say.
I have not found any bottlenecks yet.
However, I would not say that there is not something that is a bottleneck.
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

kitune-san wrote: Tue Nov 15, 2022 2:31 pm hmm.. I don't know what to say.
I have not found any bottlenecks yet.
However, I would not say that there is not something that is a bottleneck.
MicroCoreLabs wrote:
Let's see what @MicroCoreLabs has to say :-)
dmckean
Posts: 310
Joined: Sat Jan 16, 2021 7:03 am
Has thanked: 396 times
Been thanked: 95 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by dmckean »

In the meantime you can review his blog posts on what he did on real hardware.

https://microcorelabs.wordpress.com/201 ... test-pcjr/

https://microcorelabs.wordpress.com/202 ... test-pcjr/
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

dmckean wrote: Tue Nov 15, 2022 2:51 pm In the meantime you can review his blog posts on what he did on real hardware.

https://microcorelabs.wordpress.com/201 ... test-pcjr/

https://microcorelabs.wordpress.com/202 ... test-pcjr/
A note. Landmark Speed Test 6.0 also says it has similar performance to AT 7MHz, but here I am making comparisons with CheckIT, and the results of their Dhrystones seem to leave no doubt that the performance does not exceed that of an AT 3.5MHz.
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

I've updated the prerelease branch with @kitune-san's latest changes, and updated the OSD to indicate that the maximum speed corresponds to a PC/AT 286 at 3.5MHz (I attach the binary):

CPU speeds OSD.png
CPU speeds OSD.png (1.9 KiB) Viewed 3254 times

On the other hand, I have taken the opportunity to update the joystick counter values taking into account the new CPU speed models, so that they are synchronised with it as long as the corresponding option is checked in the OSD, in this way, the paratrooper game cannon will always appear centred when the joystick has no movement:

Paratrooper.png
Paratrooper.png (29.68 KiB) Viewed 3254 times
Attachments
PCXT-PRERELEASE.zip
(1.22 MiB) Downloaded 112 times
MicroCoreLabs
Core Developer
Posts: 96
Joined: Sun Jun 05, 2022 6:12 pm
Location: California
Has thanked: 6 times
Been thanked: 86 times
Contact:

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by MicroCoreLabs »

Let's see what @MicroCoreLabs has to say :-).
You can try:
- Running the microsequencer faster than 100Mhz. The FPGA can probably synthesize to a much faster clock speed.
- For SDRAM accesses you can bypass the BIU state machine and complete cycles in the minimal time. This would yield the best results.
- Mirroring the BIOS ROMs in FPGA RAM and access them by bypassing the BIU state machine.
- Can try increasing the prefetch queue from four bytes to something larger.
- Each opcode's microcode sets the cycle clock counter in the BIU to achieve cycle accuracy and then polls it. If you bypassed this code the EU core would run faster because there would be less microcode to run.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by kitune-san »

They are very interesting, but would be difficult to incorporate into the same core as the current stable 4.77 MHz system.
MicroCoreLabs
Core Developer
Posts: 96
Joined: Sun Jun 05, 2022 6:12 pm
Location: California
Has thanked: 6 times
Been thanked: 86 times
Contact:

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by MicroCoreLabs »

They are very interesting, but would be difficult to incorporate into the same core as the current stable 4.77 MHz system.
Great achievements are often difficult...

You can use my MCL86jr BIU as an example which accesses an external SSRAM at both 4.77Mhz cycle accurate and fastest possible speeds.

https://github.com/MicroCoreLabs/Projec ... /biu_min.v

I was able to get more than 4X speed improvement on the PCJr -- you can probably achieve more with PCXT.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by kitune-san »

My biggest problem at the moment is how to connect to DMA.
PCjr does not have it but XT does.
I can disable it but will not be able to use FDC.
The other thing is I do not have an SRAM card. :P

In any case, we should work on the new branch so as not to destroy the current deliverables.
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

All this may be fine as a personal challenge, but I think we have to assess what real benefits it brings to this particular core.

With the current speeds we already more than cover the different real 8088 CPU models, and considering that we are not going to add new graphics modes (EGA/VGA), I would avoid getting too involved in this aspect in favour of other things... for example, how about having an 8087? We'll have to look if there's already a development of this one on the internet...
MicroCoreLabs
Core Developer
Posts: 96
Joined: Sun Jun 05, 2022 6:12 pm
Location: California
Has thanked: 6 times
Been thanked: 86 times
Contact:

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by MicroCoreLabs »

You can add another interface to your BIU which has the full 20-bit address and 16-bits of data (MCL86 EU is 16-bit, just like real 8088) which attaches directly to your DRAM controller block which already has ports for the BIU and DMA.

When the CPU attempts an access to DRAM which you want to accelerate the access happens over this new BIU port. You would also need an indicator signal to the DRAM block to say this port is active.

You would need another port on your DRAM controller for this new interface... just one more requestor... which would run at 100Mhz.

Then you would always be coherent because there is only one DRAM system which the cycle-accurate BIU, this new high-speed interface, and DMA can access.
MicroCoreLabs
Core Developer
Posts: 96
Joined: Sun Jun 05, 2022 6:12 pm
Location: California
Has thanked: 6 times
Been thanked: 86 times
Contact:

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by MicroCoreLabs »

for example, how about having an 8087?
Virtually nothing uses the 8087... Maximum speed will always be useful. :)
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

MicroCoreLabs wrote: Wed Nov 16, 2022 3:43 am
for example, how about having an 8087?
Virtually nothing uses the 8087... Maximum speed will always be useful. :)
But having ao486 already, useful for exactly what :)
MicroCoreLabs
Core Developer
Posts: 96
Joined: Sun Jun 05, 2022 6:12 pm
Location: California
Has thanked: 6 times
Been thanked: 86 times
Contact:

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by MicroCoreLabs »

spark2k06 wrote: Tue Nov 15, 2022 2:35 pm
kitune-san wrote: Tue Nov 15, 2022 2:31 pm hmm.. I don't know what to say.
I have not found any bottlenecks yet.
However, I would not say that there is not something that is a bottleneck.
MicroCoreLabs wrote:
Let's see what @MicroCoreLabs has to say :-)
But having ao486 already, useful for exactly what :)
You tell me. You just ran speed tests and asked me what the bottlenecks were...
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

Honestly, none...if they were trivial or low-impact changes maybe it could be added, otherwise it's not worth it.

For me, the maximum speed option in this core is a "free" extra, but nothing more. Any great effort required to get something else...due to other limitations, doesn't make much sense.

We have to start coming to terms with these limitations and how far we have come, which is a lot.

I prefer to focus my efforts on revising all the bugs and leftovers in order to make it as genuine and stable as possible 8-)
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

MicroCoreLabs wrote: You tell me. You just ran speed tests and asked me what the bottlenecks were...

On the other hand, I appreciate all these comments... it's probably what made me realise how far we have to go ;)
dmckean
Posts: 310
Joined: Sat Jan 16, 2021 7:03 am
Has thanked: 396 times
Been thanked: 95 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by dmckean »

spark2k06 wrote: Wed Nov 16, 2022 3:54 am Honestly, none...if they were trivial or low-impact changes maybe it could be added, otherwise it's not worth it.

For me, the maximum speed option in this core is a "free" extra, but nothing more. Any great effort required to get something else...due to other limitations, doesn't make much sense.

We have to start coming to terms with these limitations and how far we have come, which is a lot.

I prefer to focus my efforts on revising all the bugs and leftovers in order to make it as genuine and stable as possible 8-)
It's still sort of interesting and I'm not sure this takes away from fixing all the small bugs left, I think that will get done regardless. I don't think we really know what a completely speed optimized mode is useful for until we have it.
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

My main idea with this core was PCXT, I incorporated Tandy because the graphics card project we used partially implemented it...I have expanded it because it was relatively simple.

If we want something more (286, 386 with EGA/VGA) we would already be talking about another project, a big one by the way, I won't be the one to get into that quagmire 😀.
dmckean
Posts: 310
Joined: Sat Jan 16, 2021 7:03 am
Has thanked: 396 times
Been thanked: 95 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by dmckean »

Yeah, I don't think anyone will ever tackle that properly because the payoff is low and we might end up getting free EGA someday if tubetime decides to revisit the Graphics Gremlin.
kitune-san
Top Contributor
Posts: 401
Joined: Wed May 18, 2022 11:20 am
Has thanked: 127 times
Been thanked: 412 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by kitune-san »

I understand. I will not overclock any more.
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

kitune-san wrote: Wed Nov 16, 2022 4:37 am I understand. I will not overclock any more.
Thank you for your hard work and dedication, much appreciated ;)
thorr
Top Contributor
Posts: 1311
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 634 times
Been thanked: 308 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by thorr »

spark2k06 wrote: Wed Nov 16, 2022 4:14 am If we want something more (286, 386 with EGA/VGA) we would already be talking about another project, a big one by the way, I won't be the one to get into that quagmire 😀.
We want! :D I was hoping (probably more greatly wishfully thinking) that with such an awesome team we are blessed with with you guys that after PCXT is finished, it would be an evolutionary step to move on to the 286 and a lot of the groundwork would already be laid with this core. Once that is working, it would be another evolutionary step to move on to the 386, just like it was back in the day as each generation improved on the last maintaining compatibility. The 286 had a number of really great things introduced with it. 16-bit CPU. 16-bit Slots. VGA and sound cards becoming much more common. Wolfenstein 3D. King's Quest V with awesome graphics. The 386 took this a step further with a 32-bit CPU. The 486 introduced Vesa Local Bus and PCI slots and CPU clock doubling and tripling. PCem source code could be a great resource for figuring out how everything works.

Meanwhile, I am super grateful for the XT and especially the Tandy capabilities, and extra colorful simulated CGA functions. I had an XT but never the Tandy or colorful composite CGA. I hope I can find and recover my old GW Basic programs, but they may be forever lost.

One last thing, to answer the question about why we might want more speed (which I am happy with what we have, so don't worry about it), when I was a kid, I was lent a 4.77MHz PC that I hooked my 1200 Baud Pocket Modem up to and played Populous with my buddy who had a 286. Populous runs, but man was it slow. Any speed improvement is a welcome addition to that game. However, I think it runs too fast on ao486.
User avatar
spark2k06
Core Developer
Posts: 876
Joined: Sat Jun 06, 2020 9:05 am
Has thanked: 409 times
Been thanked: 969 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by spark2k06 »

thorr wrote: Wed Nov 16, 2022 5:13 am We want! :D I was hoping (probably more greatly wishfully thinking) that with such an awesome team we are blessed with with you guys that after PCXT is finished, it would be an evolutionary step to move on to the 286 and a lot of the groundwork would already be laid with this core. Once that is working, it would be another evolutionary step to move on to the 386, just like it was back in the day as each generation improved on the last maintaining compatibility. The 286 had a number of really great things introduced with it. 16-bit CPU. 16-bit Slots. VGA and sound cards becoming much more common. Wolfenstein 3D. King's Quest V with awesome graphics. The 386 took this a step further with a 32-bit CPU. The 486 introduced Vesa Local Bus and PCI slots and CPU clock doubling and tripling. PCem source code could be a great resource for figuring out how everything works.
I have said it before, but I say it again. I am not a hardware engineer, just a puzzle piece assembler... I have learned and I am learning a lot with this project, I have managed to develop some things but that's as far as I can go.

Behind this project there are other sub-projects of great importance, and with a lot of previous work, such as.... among others:
  • KFPC-XT by kitune-san
  • MCL86 by MicroCoreLabs
  • Graphics Gremlin by TubeTime
  • JTOPL and JT89 by Jotego
I saw the opportunity to join all these pieces in one and get to where we are now, but also, due to circumstances that are not relevant, I have to say that I have been able to dedicate a lot of time to this task, but soon that won't be possible, so I want to leave closed some fringes and consider it finished, for my part of course.

Regardless of this, we don't really have anything already developed to carry out all the work that would be necessary to bring what you propose to fruition, and there has to be a very strong motivation behind it for a developer to be willing to take it on.
thorr wrote: One last thing, to answer the question about why we might want more speed (which I am happy with what we have, so don't worry about it), when I was a kid, I was lent a 4.77MHz PC that I hooked my 1200 Baud Pocket Modem up to and played Populous with my buddy who had a 286. Populous runs, but man was it slow. Any speed improvement is a welcome addition to that game. However, I think it runs too fast on ao486.
Are you sure? I'm testing the CGA version and Adlib sound and at least at the maximum CPU speed you have available without cycle accurate, it seems to me that it works very well... although I don't really know the game either.
thorr
Top Contributor
Posts: 1311
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 634 times
Been thanked: 308 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by thorr »

Thanks. I fully appreciate the current situation and what you are saying. I definitely don't think anything would happen anytime soon, and don't expect anything. I am just a big fan of this stuff and wanted to express my interest in keeping a really great thing going. I was sort of hoping that there would be interest and motivation on the part of the CPU core developers to keep going with newer CPU's and you could help in the way that you have with all of your support in so many ways to bring it all together. What you and the team did with PCXT is amazing and if that is all you ever do, it is more than anyone could have asked, and will always be greatly appreciated by me at least and probably many many others.
spark2k06 wrote: Wed Nov 16, 2022 5:59 am Are you sure? I'm testing the CGA version and Adlib sound and at least at the maximum CPU speed you have available without cycle accurate, it seems to me that it works very well... although I don't really know the game either.
I haven't had a chance to test it yet, but what I was talking about was when it ran at 4.77MHz. That was very slow. The fact that this core is already so much faster, I have no doubt it runs decently on this core already. It worked great on the 286 12. I was using that as another example of showing why faster CPU's help in some situations, and I am looking forward to trying it at the maximum CPU speed on this core! I have been totally sidelined with building my arcade cabinet and haven't had much time at all to play games. The painting has been taking forever because I have no experience and I keep messing it up. I think I am almost done with that part. I can't wait to be done with it so I can dive in and really experience this core. There are so many old games I can't wait to play again. I can already hear the monotonous Pengo song in my head.

Thanks for everything!
MicroCoreLabs
Core Developer
Posts: 96
Joined: Sun Jun 05, 2022 6:12 pm
Location: California
Has thanked: 6 times
Been thanked: 86 times
Contact:

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by MicroCoreLabs »

I can already hear the monotonous Pengo song in my head.
https://www.youtube.com/watch?v=d_aj3bG45ag

Pengo isnt much fun when the 8088 is not cycle accurate. :)
thorr
Top Contributor
Posts: 1311
Joined: Mon Jul 06, 2020 9:37 pm
Has thanked: 634 times
Been thanked: 308 times

Re: PCXT Core 10Mhz CPU Speed Possible?

Unread post by thorr »

MicroCoreLabs wrote: Wed Nov 16, 2022 6:25 am
I can already hear the monotonous Pengo song in my head.
https://www.youtube.com/watch?v=d_aj3bG45ag

Pengo isnt much fun when the 8088 is not cycle accurate. :)
EXACTLY!!! :-) I love this core for this reason and many more.
Post Reply