From a94fe3639c24442e029b4a468b64f28aea7a76e0 Mon Sep 17 00:00:00 2001 From: adam Date: Sat, 25 Aug 2007 05:21:24 +0100 Subject: [PATCH] added ports diagram to architecture manual --- Makefile | 19 +- doc/archman.tex | 33 ++++ doc/ports.svg | 540 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 587 insertions(+), 5 deletions(-) create mode 100644 doc/ports.svg diff --git a/Makefile b/Makefile index 9515eee..2974747 100644 --- a/Makefile +++ b/Makefile @@ -100,11 +100,6 @@ synth: # $(xilinx)trce -intstyle xflow -e 3 -l 3 -s 6 -xml main main.ncd -o main.twr main.pcf -manual: fleet.jar - $(java) -jar fleet.jar doc - cd .tmp; TEXINPUTS=$$TEXINPUTS:../doc/ pdflatex *.tex - open .tmp/*.pdf - test: fleet.jar; $(java) -jar fleet.jar test ships/*.ship tests testfpga: fleet.jar; $(java) -jar fleet.jar target=fpga test ships/*.ship tests @@ -112,6 +107,20 @@ testfpga: fleet.jar; $(java) -jar fleet.jar target=fpga test ships/*.ship tests generate: fleet.jar $(java) -cp fleet.jar edu.berkeley.fleet.fpga.Generator build/fpga/ +## Manual #################################################################################### + +svgs = $(shell find doc -name \*.svg) +%.eps: %.svg + DISPLAY= /Applications/Inkscape.app/Contents//Resources/bin/inkscape -z --export-area-drawing $^ --export-eps=$@ + +%.pdf: %.eps + epstopdf $^ --outfile=$@ + +manual: fleet.jar $(svgs:%.svg=%.pdf) + $(java) -jar fleet.jar doc + cd .tmp; TEXINPUTS=$$TEXINPUTS:../doc/ pdflatex *.tex + open .tmp/*.pdf + ## API docs #################################################################################### javadoc: diff --git a/doc/archman.tex b/doc/archman.tex index 707e71a..5d79cc8 100644 --- a/doc/archman.tex +++ b/doc/archman.tex @@ -1,6 +1,7 @@ \documentclass[10pt,oneside]{book} \reversemarginpar \usepackage{palatino} +\usepackage{epsfig} \usepackage{parskip} \usepackage{register} \usepackage{bytefield} @@ -22,6 +23,38 @@ Bypass\\ \pagebreak +\section*{Programmer's View of The Ship-Fabric Interface} + +The diagram below represents a {\it programmer's} conceptual view of +the interface between ships and the switch fabric. Actual +implementations may differ radically, as long as such differences are +not visible to software programs. + +%\begin{wrapfigure}{R}{2in} +\epsfig{file=ports,width=6in} +%\end{wrapfigure} + +The term {\it port} refers to each interface to the ship (either +inbound or outbound) and the machinery required to manage this +interface. The machinery consists of a {\it latch}, which is as wide +as a single machine word, a {\it pump}, which is a circular fifo of +instruction-width latches, and a number of {\it sources} or {\it + destinations}. Sources and destinations which can only send or +recieve tokens (rather than data items) are drawn as dashed lines. +Buffering fifos are drawn where they appear. + +Note in particular that every pump is a destination capable of +recieving a data word. This is how instructions are dispatched to +pumps -- they are inserted into the switch fabric as {\it packets} +whose destination addresses + +Note that addresses are actually paths. + +Define packets. + + + +\pagebreak \section*{Data Formats} \subsection*{Packet Destination Address (12 bits)} diff --git a/doc/ports.svg b/doc/ports.svg new file mode 100644 index 0000000..bc2ab2d --- /dev/null +++ b/doc/ports.svg @@ -0,0 +1,540 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ship + Pump + Destination + Destination + Source + Source + Destination + Destination + + + + + + Ship + Valves + OutputPort + + + Switch Fabric + InputPort + DataLatch + DataLatch + + + + + + + + Pump + + -- 1.7.10.4