[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [f-cpu] F-CPU architecture...

Michael Riepe wrote:


Bogdan Petrisor wrote:

Well the question about Harvard architecture was just a ... question. I was curious if this was
considered sometimes during the developement of the F-CPU (and yes I have read the manual at least
this one http://f-cpu.seul.org/cedric/unstable/F-CPU_manual-0.2.7c-en-color.pdf and found no
reference about it). I think it can offer a bit more performance and since I remembered that the
ELF format is already separated in data segments and instruction segments for a moment seemed a
good idea.

Well, not really. It's true that ELF files contain one or more segments, but they're not separated in code and data but in writable and read-only data (where instructions usually reside in a non-writable data segment). And even read-only segments may be written to during program loading and dynamic linking, e.g. to apply relocations.

Harvard architecture is nice for special purpose machines, DSPs and such.

This is also used for some microcontrollers like Microchip's PICs
(that i use a lot, from the 16LF877 at http://whygee.club.fr/drosephylia/drose7.jpg
to the ultrasmall 10F20x in SOT23). And these architectures count as "special".
F-CPU is meant to be "general".

But you can't run a decent operating system on them - how are you going to compile and load a program if you can't write to your program memory space? Programs must be pre-installed or loaded from outside, preferably while the CPU is not running. It's a little like a BIOS update.

Most DSP (and i know ADi's quite well) manage to access PM and DM on a unique external bus that
shares several addressing spaces. But that's far from ... flexible.

We will probably integrate a separate read-only "program memory" for the built-in self test (BIST) that runs after power-up - I guess that will be too hard and too costly to hard-wire. But the rest of the instruction stream will come from main memory.

ROM is probably useless. First reason : FC0 will certainly "live" as a FPGA in the beginning, so no need to make exhaustive failure verification. Second reason : i had found, years ago, how to create the BIST using a FMS (some hundred thousand cycles are enough, the key is to find in which order to send signals through the pipeline). Third reason : RAM is better and cheaper. And I think that bootstrapping the CPU with the help of an external, cheap microcontroller is a good help.


To unsubscribe, send an e-mail to majordomo@xxxxxxxx with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/