Re: CPU design



radarman wrote:
Maybe you are right and the core and programs are smaller with Forth, I'll
think about it. Really useful is that it is simple to write an interactive
read-eval-print loop in Forth (like in Lisp), so that you can program and
debug a system over RS232.



Simpler solution - have the microcode FSM push the flags to the stack.
It's a simple alteration, and saves a lot of heartache. I have
contemplated even pushing the entire context to the stack, since I can
burst write from the FSM a lot faster than I can with individual
PSH/POP instructions, but I figure that would be overkill.

For someone doing a fully custom/own assembler/compiler :

The tiniest CPUs do not need a stack, and interupts do not need to be
re-entrant, so a faster context switch is to re-map the Registers, Flags (and even PC ? ) onto a different area in BRAM.
You can share this resource by INTs re-map top-down, and calls re-map
bottom up - with a hardware trap when they collide :)

-jg

.



Relevant Pages

  • Re: [ubuntu-hardened] Re: Collecting NX information
    ... >>everything PaX wants ... define exactly what the flags should do. ... Stack and heap default to +X ... kernel randomizes anything that can be randomized in the address ...
    (Linux-Kernel)
  • Re: Multiple Undo Program / Command Logger
    ... HALT errors if suspending isn't OK, ... it then halts (which creates a brand new "Last Stack") ... you can have a different BetaENTER program ... The following resets flags and modes after any operation, ...
    (comp.sys.hp48)
  • [Patch] no exec: sync x86_64 behaviour with i386
    ... Control non executable mappings for 64bit processes. ... -per executable using ELF header flags ... Stack is non executable, heap/data is. ...
    (Linux-Kernel)
  • Re: [KMDF] Removing FDO and let PDO running
    ... You're right, here's what my stack looks like with!devnode ... CapabilityFlags LockSupported, UniqueID, ... Unknown flags 0xe9740000 ...
    (microsoft.public.development.device.drivers)