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

Add support for random access memory #20

Open
bobbinth opened this issue Jun 7, 2020 · 0 comments · May be fixed by #39
Open

Add support for random access memory #20

bobbinth opened this issue Jun 7, 2020 · 0 comments · May be fixed by #39
Labels
instruction set Changes to instruction set

Comments

@bobbinth
Copy link
Contributor

bobbinth commented Jun 7, 2020

Currently, stack is the only place to store values. This is rather limiting, and can be improved by introducing random access memory. Adding RAM would require:

  1. Implementing ALT stack Add ALT stack #19
  2. Limiting total constraint degree to 7. This can be achieved by splitting instructions into high-degree and low-degree instructions Introduce high-degree operations #18
  3. Implementing instruction mirroring
  4. Adding an extra register to store root of the RAM state
  5. Adding LOAD and STORE instructions to access RAM state register

Overall performance impact of the above changes would probably result in over 50% execution slowdown with instruction mirroring being the biggest driver.

@bobbinth bobbinth added the instruction set Changes to instruction set label Jun 7, 2020
@bobbinth bobbinth linked a pull request Aug 23, 2020 that will close this issue
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
instruction set Changes to instruction set
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant