Raw Resources
                  Michael Taylor, Paul R. Johnson
 
 

The Raw Simulator

For information on the Raw simulator (btl) and the Raw programming environment (starsearch) contact Paul R. Johnson (prj@mit.edu).

The Raw Processor Specification

The Raw specification is located on the main raw document website. It describes the ideas behind the Raw processor. It is based off of this master's thesis. The first 13 chapters are largely unmodified from the thesis of September 1999. They describe the ideas behind the Raw microprocessor, but some of the details (buffer sizes, number of pipeline stages) have changed since. The 14th chapter is kept up-to-date and is used as the canonical reference for the processor design. This chapter assumes that you are very familiar with the MIPS R4000.
The Raw specification is maintained by Michael Taylor.

The Raw Introuduction Day

Videos of presentations discussing various aspects of the Raw chip itself and how to program for it are available here.
starsearch
starsearch is the Raw testing infrastructure and module test repository. Starsearch is a highly leveraged collection of Makefiles that allows new Raw group members to write module tests and applications on Raw and automatically run them on both the verilog and .c simulations of the processor. The starsearch repository also includes a large number of tests that have been written by Raw group members. The tests were run as a regression each night. Each RTL verilog bug that was found by a raw group member earned them a star on the "star chart" outside of NE43-626a.
btl
btl is the raw cycle-accurate simulator. It matches the hardware behaviour exactly (although the sizes of rams and number of tiles can be configured), but has added debugging functionality. The goal of btl was originally to develop the architecture. At this point, btl's purpose is to aid in the verification of the Raw processor and as a test-bed for raw programming..

btl features a interpretive pipeline simulation engine, around which is wrapped the bC extension language interpreter. bC is a byte-code compiled, interpreted, threaded dialect of C. The bug user interface and machine-level debugging support layer of the simulator are all written in bC. It is very easy to add your own commands to bug by writing your own .bc code and linking it in. In fact, we recommend that you do so. The description of the environment (boot roms, DRAMS, pci buses, print devices) surrounding the simulation raw chip is written in bC, and is user-configurable (see the advanced document on btl). The same devices are re-used in the crudo simulation as well, through the use of the rawpli.

btl replaces rawsim,  which was much less accurate. if you should see references to rawsim in a document, it is likely that you are reading an outdated version.

rgdb
rgdb is a port of the GNU Debugger ( gdb) that can be used to debug programs running on a Raw board. Initial documentation is available here.
rbinutils
rbinutils is the raw gnu binutils port. It is capable of assembling and creating binaries for both the processor and the static switch.
rgcc
rgcc is the raw gcc port. It is used to write OS code and serial test applications for the Raw processor.  Based off of the GCC 2.8.1 for MIPS, it is currently the most robust of our compilers. It contains some minor modifications to match the Raw ISA, but no parallelization support. It is normally used transparently under the starsearch Makefile infrastructure.
archlib
archlib is a collection of include files that add support for GCC for items that are best done in assembly language, or at very low level. Functions are implemented that access SPRs, send and receive messages on all networks, calculate population count/parity, and manipulate the caches.
StreamIt
StreamIt is a programming language and a compilation infrastructure, specifically engineered for modern streaming systems. It is designed to facilitate the programming of large streaming applications, as well as their efficient and effective mapping to a wide variety of target architectures, including commercial-off-the-shelf uniprocessors, multi-clustered architectures, and the emerging class of grid-processors. An implementation for use with Raw exists. StreamIt can be downloaded from the StreamIt website.
rawcc
rawcc is a prototype raw parallelizing compiler, implemented using SUIF. It takes a sequential C or fortran program and parallelizes it across the raw tiles. The focus of this compiler is more to advance compiler research than to be a generic systems compilation tool. This tool is not released for general usage. We recommend you contact Walter Lee for a list of usage guidelines before trying to use this tool.