BigDumbDinosaur wrote:
Hugh Aguilar wrote:
I was told that all cars sold in America and Europe (except Toyota) use a PowerPC variant with an eTPU coprocessor for I/O. The 65VM02 isn't going to be as powerful as that. I don't know why such a powerful system is needed though. Car engines still run at about 5000 rpm max, the same as they did in the 1980s. For an eight-cylinder car, that is 80,000 times per second that you have to turn a spark on or off, which is once every 12.5 microseconds.
Your math could use some adjusting. The V-8 that powers my Mercury Marquis sedan has a 6000 RPM redline. At that speed, the engine makes 100 revolutions per second and being a four-stroke design, fires each cylinder 50 times per second. Hence the engine would be firing a cylinder at five millisecond intervals.
Okay, my math was screwed up badly. Your calculation seems to be correct.
5 milliseconds is actually very pedestrian --- even 1980s processors can do that --- I think GM used a 6803 and Mitsubishi used their '740.
BigDumbDinosaur wrote:
The reason today's automobiles have that computational power is because a lot more is being controlled than just when to send some juice to the spark plugs. Precise adjustments have to constantly be made to fuel mixture, ignition timing and in some engines, valve timing, all in an effort to produce the best possible combination of power, fuel efficiency and exhaust cleanliness. Adding to the workload is transmission control, as shift points in most automatic transmissions are now electronically determined, based upon engine loading at any given RPM, the fuel rate and other factors. The engine control package (ECM) also regulates coolant temperature with much greater precision than in the past, as running the engine as hot as possible without compromising reliability improves thermodynamic efficiency.
In order to do all this, many inputs are needed to sense engine operating conditions and all must be serviced in real time at a very rapid rate. Complicating matters, just about all of those inputs are analog, not digital. Further complicating matters, most of the ECM's outputs are also analog. I think your 65VM02 probably wouldn't cut it in this environment. Even the 65C816 running at the maximum clock rate would have trouble keeping up with the processing load.
With a lot of I/O it would help to have multiple interrupts. The 65c02 or 65c816 would have a problem because they only have the IRQ and NMI, so each interrupt has to poll a lot of I/O ports to figure out what tripped the interrupt. The 65VM02 has MIRQ3, MIRQ2, MIRQ1, MIRQ0, IRQ, and NMI. This is still not enough.
It is not really a matter of raw processing power --- it is more a matter of being able to handle a lot of interrupt lines.
On this subject, does anybody actually use BRK for anything? My 65VM02 is 65c02 compatible at this time, but I'm thinking about getting rid of BRK and breaking compatibility. This would be done to free up that bit in the P register to be used as another interrupt-mask similar to the M-flag, but for another level of interrupts. Another possibility is to get rid of decimal mode, which almost nobody uses, which would simplify the processor and also free up the D-flag.
There is actually a lot of cruft in the 65c02 that could be discarded. I already mentioned the (direct,X) addressing-mode, which almost nobody uses. There is not very much legacy 65c02 code around that anybody cares about, so strict compatibility with the 65c02 may not be very important.
BigDumbDinosaur wrote:
Quote:
This requires hardware support. USP is a lot faster than a basic UART --- but I don't know why transferring files at high-speed is needed --- my 65c02 cross-compiler had the Apple-IIc target and MS-DOS host talking at 19,200 baud, which was adequate for my purposes.
I don't know why as well. After all, a 300 baud modem worked fine with a Commodore VIC-20.
BTW, I assume you mean USB, not USP.
I can't speak for others around here, but if you did as much software development as I have done you would conclude that there is no such a thing as a computer that is fast enough. I run the interface between POC and my Linux development box at 115.2Kbps and wish I could run it faster. Even gigabit Ethernet seems a bit slow at times.
Yes, I meant USB --- that was a typo.
I still don't know of any reason why transferring files in and out of a desktop computer has to be done quickly --- this is not real time --- also, the maximum memory is 16MB, so even at fairly slow speeds there isn't going to be a noticeable delay.