Is the One Chip MSX a real MSX or not?

Page 1/13
| 2 | 3 | 4 | 5 | 6

By snout

Ascended (15187)

snout's picture

09-02-2007, 18:16

Right, in the MSX Dimensions thread we came to quite an extentialist topic: Is the One Chip MSX a real MSX or not? Continuing where we left behind, here's my point of view:

As Nishi explained in several lectures, and the MSX-Engine proves, the whole idea of MSX has always been to reduce the amount of components (and costs), with a single chip as the ideal situation. Also keep in mind that a casport is included in the default config: just change a DIP-switch and sacrifice one of the cinch connectors to get the job done! Don't keep bas(h)ing your image of the OCM on old facts, please.

To me, what sets the OCM apart from emulators is

a) It's a complete, silent, relatively inexpensive stand-alone hardware device. No host-OS needed. No expensive, relatively high-resources (CPU, GFX, MEM) required.
b) It's an implementation of a complete MSX computer's circuitry that actually runs parallel, exactly like the exact same circuitry would work if you would build it from scratch
c) Indeed, it's a device branded with the MSX logo, licensed by MSX Association, produced in fairly large quantities in Japan. Completely legal and real ;)
d) It's not fully backwards compatible with its predecessors. MSX2, 2+ and turboR weren't either ;P

Although "it's a bit like emulation" is a good way to get an image of how VHDL works, but how it actually works - and the amount of resources it takes - is completely different. The fact alone that a mere 21MHz FPGA chip is powerful enough to get the job done shows how big the difference is between 'hardware emulation in FPGA' and 'software emulation on a host OS'. Sure, it's got VHDL running through its vains - and in the default configuration the circuitry implemented is not 100.00% accurate - but that does not make the OCM more or less of an MSX computer. VHDL allows us to implement (or decide to leave behind) all the quirks, documented and undocumented features of all the components needed to build an MSX computer. The end result is clear: a stand-alone, completely accurate implementation of MSX in VHDL.

If that does not make the OCM an MSX to you, then I might wonder: what does?

On a real MSX its easy to replace and extend the inner part of the machine with your own hw stuff.You can do EXACTLY THIS with the OCM in VHDL. Added bonus: you don't have to buy/produce the components, all you have to do is code/download the VHDL and you're off. Away with the soldering iron! :)

Login or register to post comments

By Tanni

Hero (556)

Tanni's picture

09-02-2007, 19:03

For me, OCM is a real MSX for sure. It's the next step towards MSX3. To reach this goal, maybe more than one step is necessary.

The term ''emulation'' can either designate the implementation of a computer system by means of a software program beneath the operating system of another typically faster computer system or the use of an FPGA to emulate the hardware of a computer system -- here MSX -- by a configurating bitstream. The software program is typically executed by a processor whereas the bitstream for the FPGA establishes the processor itself by parallel working FPGA components called CLBs.

FPGA is also a design style. To implement a processor, you can choose several design styles: You can do a hand layout, which would take very much time and would be very expensive, or e.g. a standard cell, a macro cell or an FPGA approach. For MSX, FPGA design style is best suited due to it's relative cheepness, flexibility and short time to market.

To test a processor before it's very expensive but quite optimal implementation e.g. as a hand layout, you first implement it in VHDL in an FPGA. But hand layout is to expensive for small series and short time to market. So, if the device need not be extremely fast, but extremly cheep, you can use FPGA.

Would there this discussion if OCM would have been implemented in standard cells?

By dvik

Prophet (2200)

dvik's picture

09-02-2007, 19:51

just a quick reply, I hope to do a more thoughtful reply soon.


Quote:
On a real MSX its easy to replace and extend the inner part of the machine with your own hw stuff.
You can do EXACTLY THIS with the OCM in VHDL. Added bonus: you don't have to buy/produce the components, all you have to do is code/download the VHDL and you're off. Away with the soldering iron!

This is actually exactly why I think the OCM is an emulator. The fact that you have to modify the VHDL and not use a soldering iron is what makes it an emulator. Its no different from when I add support for new features in blueMSX. The only difference is that I have to do it in C/C++ instead of VHDL.

It sounds a little bit that some people have negative undertones when talking about emulation. So when saying that the OCM is an emulator, it implies that its less worth or something. I don't really get those thoughts. For me a VHDL based emulator is a great thing.

By msd

Paragon (1372)

msd's picture

09-02-2007, 21:08

One big difference between emulators and the OCM is that in VHDL thing can run really parallel, like in the real MSX and this means it can potientially be more accurate than an emulator.

By dvik

Prophet (2200)

dvik's picture

09-02-2007, 21:24

this means it can potientially be more accurate than an emulator.
This is actually not true. It certainly is a good thing to run things in parallel but from a system point of view, a PC emulator also run things in parallel. Most emulators executes different devices in bursts, like 5-100us at the time but every time there is some interaction between devices, the emulation is synchronized so that when the interaction occurs, the state of the emulation is the same as on the OCM or a real MSX. The better the synchronization is, the more CPU time the emulation requires. So to do the same job the OCM does on a 21MHz FPGA, a PC based emulator probably needs to run at 2GHz or something. So the OCM is of course much more efficient.
But its absolutely nothing that makes VHDL code theoretically more accurate than C code. Some things are easier to code in VHDL and much more efficient, like emulating the bus. The bus is really the poorest emulated part in PC emulators like openmsx and bluemsx. These emus simply needs to make some optimizations that reduces the accuracy. But this is not because its impossible to emulate, its to save CPU so that the emus can run on lower spec PC's.

By hap

Paragon (2020)

hap's picture

09-02-2007, 23:01

I agree with dvik. Emulators use a 'catch up' method to synchronize components, eg. the VDP only needs to be synchronized with the CPU after a change in the VDP state like writing to a VDP register. The result is the same as true parallel emulation.

By multi

Expert (74)

multi's picture

10-02-2007, 01:21

isn't the pc origionally an ibm pc? so doesn't that make my pc an ibm pc emulator? (aka ibm clone)

or did the word emulation all of a sudden get a secret clause of "being modifyable by means of a compilable and executable specification"?

By hap

Paragon (2020)

hap's picture

10-02-2007, 01:33

No, that's backward compatibility (eg. MSX2 is backward compatible with MSX1, MSX2 is not an MSX1 emulator). Wikipedia describes emulation pretty well: http://en.wikipedia.org/wiki/Emulator

By dvik

Prophet (2200)

dvik's picture

10-02-2007, 01:46

Internet never lies and the wikipedia link clearly says:

A hardware emulator is an emulator which takes the form of a hardware device. Examples include printer emulators inside the ROM of the printer, and FPGA-based emulators.

Case closed Wink

By multi

Expert (74)

multi's picture

10-02-2007, 03:13

so on the wiki page is says:

Emulation refers to the ability of a program or device to imitate another program or device. (like a ibm clone imitates an ibm pc) Many printers, for example, are designed to emulate Hewlett-Packard LaserJet printers because so much software is written for HP printers. By emulating an HP printer, a printer can work with any software written for a real HP printer. Emulation "tricks" the software into believing that a device is really some other device. (like an ibm clone tricks the software in believing it was running on an ibm pc)

well, i think that making a distinction of a "real" device and a "emulated" device is just something that blurs whats going on. basically all devices have some behaviour wired in, and distincting it on behaviour already made before complicates everything a lot (basically it ties your own brains up)

questions:
is a device that has extra features backward compatible?
is a emulator that has extra features not really a new thing thats just backward compatible?
is a hard wired emulator (like in the case of HP printer emulation) not just a way of implementing compatibility?
is backward compatibility not just compatibility with a device made before in time?
is forward compatability possible, do we need a timemachine to make it?
is my PC backward compatible or is it emulating?
why has the pentium an emulation mode for backward compatibility?

the plot thinkens...

By Ivan

Ascended (9076)

Ivan's picture

10-02-2007, 09:28

For me the OCM is a real MSX, without any doubt.

This is actually exactly why I think the OCM is an emulator.

A hardware emulator is an emulator which takes the form of a hardware device. Examples include printer emulators inside the ROM of the printer, and FPGA-based emulators.

There is a slight difference: blueMSX and openMSX are not tangible whereas the OCM is a real thing.

Well, of course you can touch the PC where you run those emulators, but no excitement at all Tongue Tongue

Page 1/13
| 2 | 3 | 4 | 5 | 6