RAM Usage

General discussions about using the Astrobe IDE to program the FPGA RISC5 cpu used in Project Oberon 2013
Post Reply
cfbsoftware
Site Admin
Posts: 525
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

RAM Usage

Post by cfbsoftware » Sun Jul 26, 2015 12:02 pm

captbill wrote: Do the user space programs use the ram blocks of an FPGA? How much ram is used by the OS?
The bootloader is stored in the Xilinx FPGA BRAM. The user space programs (including the Project Oberon operating system) are stored in external SRAM. There is 1Mbyte on the Digilent Xilinx development board which is more than enough for the full Project Oberon operating system.

I expect that the minimal operating system I am proposing won't need any more than 128Kbyte of RAM for program code, global data, stack and heap storage. It may be possible to store the whole system on an FPGA that has sufficient BRAM (e.g. the larger Spartan 6 devices) but we have yet to find that out.

For more details download the Project Oberon 2013 documentation pdf files from:

http://www.projectoberon.com/

cfbsoftware
Site Admin
Posts: 525
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

Re: RAM Usage

Post by cfbsoftware » Sun Sep 13, 2015 12:21 pm

Here is the latest screenshot of the experimental command-line version of the Oberon RISC5 OS communicating with the Astrobe Terminal. The MSystem commands are simply versions of the corresponding Project Oberon System commands that have been modified to redirect their input / output via RS232 instead of the keyboard and VGA display:
MSystem.JPG
MSystem.JPG (81 KiB) Viewed 21801 times
ShowModules gives a list of the modules that are currently loaded in RAM. The Watch command indicates that the RAM usage of the OS is only about 52 KBytes.

cfbsoftware
Site Admin
Posts: 525
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

Re: RAM Usage

Post by cfbsoftware » Sat Oct 03, 2015 1:50 pm

Here is the latest screenshot of the experimental command-line version of the Project Oberon RISC5 OS communicating with the Astrobe Terminal via a 115200 baud RS232 serial link. The RISC5 system is running entirely in the on-chip BRAM of the Xilinx Spartan 6 LX45 FPGA itself - no external SRAM is required. The FPGA development board used is Saanlima Electronics' Pipistrello:

A total of 224 KBytes of BRAM are allocated to the Oberon system including 32KBytes reserved for dynamic variables. As can be seen only just over 25% of the RAM is used by the operating system - the rest is free for your applications. These are typically very small as only the object file needs to be loaded e.g. the PrimeNumbers example program is only 851 *bytes*. Any imports that are already loaded in memory (e.g. Texts) are reused without any additional overheads.

The Oberon commands are in the lower pane of the window (scroll down to see them). This is an editable text window so you can add new commands, and edit or delete existing commands. Position the cursor anywhere on a command and double-click or press CTRL-ENTER to execute it.

The default text in the window is loaded from the System.Tools file when you start the Astrobe Terminal. Updated window contents can be saved at any time to the same file or a new file of your choice.
Capture.JPG
Capture.JPG (65.41 KiB) Viewed 21768 times

Post Reply