Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

automatic switching FastCPU vs. SafeCPU? #45

Closed
regular opened this issue Jan 8, 2015 · 1 comment
Closed

automatic switching FastCPU vs. SafeCPU? #45

regular opened this issue Jan 8, 2015 · 1 comment

Comments

@regular
Copy link
Contributor

regular commented Jan 8, 2015

There are three different CPU implementations. The SMP one I think is not really stable (gets more unstable when the numbers of core increase)
Is the FastCPU actually unsafe? i.e. is there a scenario where it fails? (a certain browser environment for example). If so, would it be possible to detect that failure and switch to the safe cpu?

My feeling so far: the FastCPU is stable and safe.

@s-macke
Copy link
Owner

s-macke commented Jan 8, 2015

Yes, the SMP one is not really stable yet. I don't know why, but have some ideas to find the error.
The slow CPU is the reference, in which the CPU is implemented like in the specification. I don't care about speed.

The fast CPU is optimized for the code it executes.

  • flags are never used and therefore omitted
  • timing might not be exact (Check for an interrupt for example)
  • use my own implementation of the MMU
  • use of hardware TLB refill. (This is the biggest change, because it needs a kernel patch)

So let's say, as long as you don't program anything in assembler or change significant parts in the kernel code, you will never see an error.

I should rename the file, that it is clear, that this is the reference CPU.

@s-macke s-macke closed this as completed Jan 8, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants