- ISA separated into small base ISA and support for extensions
- JAL stores the address of the instruction following the jump (pc+4) into register rd. Calling convention is x1 as return address and x5 as alternate link register. Return address stack can be manipulated by JAL/JALR.
- Aligned loads and stores are guaranteed to execute atomically, misaligned loads and stores are not
- Each hart observes its own memory operations as if they are executed in sequential program order. RISC-V observes a relaxed memory model between harts. Explicit FENCE instructions are required to guarantee ordering between memory operations from different harts.
- FENCE is used to order I/O and memory accesses as viewed by other RISC-V harts, external devices, and co-processors. No other hart or external device can observe any operation in the successor set following a FENCE operation before any operation in the predecessor set before the FENCE.
Link to tech report
Alpha 21264 has 15 FO4 delays. (FO4 delay is the delay of inverter, driven by an inverter 4x smaller than itself, and driving an interter 4x bigger than itself). BOOMv2 is 35 FO4.
BOOMv1 follows the 6-stage pipeline structure of MIPS R10K - fetch, decode/rename, issue/register-read, excute, memory, and writeback.
Frontend fetches instructions for execution in the backend.
"What doesn't get measured might not get done". Coverage helps to answer the "are we done" question.
Two concepts fundamental to understand coverage.
- Controllability: ability to influence FSMs, structure, or LOC in the design
- Observability: ability to obseve the effects of a FSMs, structure, or LOC in the design
Kinds of coverage:
- Run
openocd -interface_list
. The ftdi interface driver should be listed.
Link to example configuration file --> https://github.com/cho45/raspberrypi-mruby-bare-metal/blob/master/openocd/generic-ft4232h-libftdi.cfg
- Run `openocd -f <file.cfg>
This exercise was beyond successful.
docker run -e MYSQL_ROOT_PASSWORD=<password> -e MYSQL_DATABASE=wordpress --name wordpressdb -v "$PWD/database":/var/lib/mysql -d mariadb:latest
docker run -e WORDPRESS_DB_PASSWORD= --name wordpress --link wordpressdb:mysql -p 80:80 -v "$PWD/html":/var/www/html -d wordpress
- Download and untar latest version of go at www.golang.org
- Set GOPATH and GOROOT environment variables. GOROOT points to go binary install. GOPATH points to your workspace (e.g. $HOME/go).
Notes from https://github.com/alco/gostart:
- Go is only compatible with code that resides in a workspace.
- Go does not allow you to depend on specific versions of external packages.
- There are no local packages, only fully qualified imports.
- All files in a single directory belong to one package
I purchased Adafruit FT232H Breakout - General Purpose USB to GPIO+SPI+I2C from Amazon
- First, check if device is detected
$ lsusb
Bus 003 Device 018: ID 0403:6014 Future Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC
New cloud architecture that uses FPGA to accelerate network plane functions (encryption) and applications (search ranking).
Network flows can be transformed at line rate using FPGAs.
FPGA are placed between NIC and CPU in each node of network. Three scenarios: local compute acceleration (through PCIe), network acceleration, and global application acceleration.