%PDF-1.4
%ÐÔÅØ
5 0 obj
<< /S /GoTo /D (section.1) >>
endobj
8 0 obj
(1 Introduction)
endobj
9 0 obj
<< /S /GoTo /D (subsection.1.1) >>
endobj
12 0 obj
(1.1 Document notes)
endobj
13 0 obj
<< /S /GoTo /D (section.2) >>
endobj
16 0 obj
(2 Background information)
endobj
17 0 obj
<< /S /GoTo /D (subsection.2.1) >>
endobj
20 0 obj
(2.1 Transputers)
endobj
21 0 obj
<< /S /GoTo /D (subsection.2.2) >>
endobj
24 0 obj
(2.2 The transputer / host development relationship)
endobj
25 0 obj
<< /S /GoTo /D (subsection.2.3) >>
endobj
28 0 obj
(2.3 Connecting transputers together)
endobj
29 0 obj
<< /S /GoTo /D (subsection.2.4) >>
endobj
32 0 obj
(2.4 The other occam toolsets)
endobj
33 0 obj
<< /S /GoTo /D (section.3) >>
endobj
36 0 obj
(3 The INMOS scientific-language compilers)
endobj
37 0 obj
<< /S /GoTo /D (subsection.3.1) >>
endobj
40 0 obj
(3.1 The compilers)
endobj
41 0 obj
<< /S /GoTo /D (subsubsection.3.1.1) >>
endobj
44 0 obj
(3.1.1 Features)
endobj
45 0 obj
<< /S /GoTo /D (subsection.3.2) >>
endobj
48 0 obj
(3.2 Using the scientific-language compilers in the simplest case)
endobj
49 0 obj
<< /S /GoTo /D (subsubsection.3.2.1) >>
endobj
52 0 obj
(3.2.1 Building a simple C program)
endobj
53 0 obj
<< /S /GoTo /D (subsubsection.3.2.2) >>
endobj
56 0 obj
(3.2.2 Building a simple Pascal program)
endobj
57 0 obj
<< /S /GoTo /D (subsubsection.3.2.3) >>
endobj
60 0 obj
(3.2.3 Building a simple FORTRAN program)
endobj
61 0 obj
<< /S /GoTo /D (subsection.3.3) >>
endobj
64 0 obj
(3.3 Loading the tools)
endobj
65 0 obj
<< /S /GoTo /D (subsection.3.4) >>
endobj
68 0 obj
(3.4 Rerunning the tools without reloading them)
endobj
69 0 obj
<< /S /GoTo /D (subsection.3.5) >>
endobj
72 0 obj
(3.5 Running transputer bootable files as MS-DOS commands)
endobj
73 0 obj
<< /S /GoTo /D (subsection.3.6) >>
endobj
76 0 obj
(3.6 The run-time libraries)
endobj
77 0 obj
<< /S /GoTo /D (subsection.3.7) >>
endobj
80 0 obj
(3.7 Transputer memory allocation)
endobj
81 0 obj
<< /S /GoTo /D (subsubsection.3.7.1) >>
endobj
84 0 obj
(3.7.1 The occam memory allocation map)
endobj
85 0 obj
<< /S /GoTo /D (subsubsection.3.7.2) >>
endobj
88 0 obj
(3.7.2 The scientific-language memory allocation map)
endobj
89 0 obj
<< /S /GoTo /D (subsection.3.8) >>
endobj
92 0 obj
(3.8 Implementation details)
endobj
93 0 obj
<< /S /GoTo /D (subsubsection.3.8.1) >>
endobj
96 0 obj
(3.8.1 The runtime stack)
endobj
97 0 obj
<< /S /GoTo /D (subsubsection.3.8.2) >>
endobj
100 0 obj
(3.8.2 The run-time heap)
endobj
101 0 obj
<< /S /GoTo /D (subsubsection.3.8.3) >>
endobj
104 0 obj
(3.8.3 Selecting the run-time stack)
endobj
105 0 obj
<< /S /GoTo /D (subsubsection.3.8.4) >>
endobj
108 0 obj
(3.8.4 Placement of the code)
endobj
109 0 obj
<< /S /GoTo /D (subsubsection.3.8.5) >>
endobj
112 0 obj
(3.8.5 The static data area)
endobj
113 0 obj
<< /S /GoTo /D (subsubsection.3.8.6) >>
endobj
116 0 obj
(3.8.6 The scientific-language process communications interface)
endobj
117 0 obj
<< /S /GoTo /D (subsection.3.9) >>
endobj
120 0 obj
(3.9 Scientific-language channel I/O support)
endobj
121 0 obj
<< /S /GoTo /D (subsubsection.3.9.1) >>
endobj
124 0 obj
(3.9.1 C support)
endobj
125 0 obj
<< /S /GoTo /D (subsubsection.3.9.2) >>
endobj
128 0 obj
(3.9.2 Pascal support)
endobj
129 0 obj
<< /S /GoTo /D (subsubsection.3.9.3) >>
endobj
132 0 obj
(3.9.3 FORTRAN support)
endobj
133 0 obj
<< /S /GoTo /D (subsubsection.3.9.4) >>
endobj
136 0 obj
(3.9.4 Parallel C support)
endobj
137 0 obj
<< /S /GoTo /D (subsubsection.3.9.5) >>
endobj
140 0 obj
(3.9.5 Parallel FORTRAN support)
endobj
141 0 obj
<< /S /GoTo /D (subsection.3.10) >>
endobj
144 0 obj
(3.10 Additional support from Parallel C and Parallel FORTRAN)
endobj
145 0 obj
<< /S /GoTo /D (subsection.3.11) >>
endobj
148 0 obj
(3.11 Transputer assembler inserts)
endobj
149 0 obj
<< /S /GoTo /D (subsubsection.3.11.1) >>
endobj
152 0 obj
(3.11.1 Usage of assember)
endobj
153 0 obj
<< /S /GoTo /D (subsubsection.3.11.2) >>
endobj
156 0 obj
(3.11.2 Local workspace allocation)
endobj
157 0 obj
<< /S /GoTo /D (subsubsection.3.11.3) >>
endobj
160 0 obj
(3.11.3 Review of how the transputer implements procedure calls)
endobj
161 0 obj
<< /S /GoTo /D (subsubsection.3.11.4) >>
endobj
164 0 obj
(3.11.4 The C assembler restrictions and capabilities)
endobj
165 0 obj
<< /S /GoTo /D (subsection.3.12) >>
endobj
168 0 obj
(3.12 Mixing occam and non-occam compilation units within the same process)
endobj
169 0 obj
<< /S /GoTo /D (subsubsection.3.12.1) >>
endobj
172 0 obj
(3.12.1 Parameter type compatabilities)
endobj
173 0 obj
<< /S /GoTo /D (subsubsection.3.12.2) >>
endobj
176 0 obj
(3.12.2 Hidden parameters)
endobj
177 0 obj
<< /S /GoTo /D (subsubsection.3.12.3) >>
endobj
180 0 obj
(3.12.3 Array parameters)
endobj
181 0 obj
<< /S /GoTo /D (subsubsection.3.12.4) >>
endobj
184 0 obj
(3.12.4 Vectorspace)
endobj
185 0 obj
<< /S /GoTo /D (subsubsection.3.12.5) >>
endobj
188 0 obj
(3.12.5 Occam parameter supersets)
endobj
189 0 obj
<< /S /GoTo /D (subsubsection.3.12.6) >>
endobj
192 0 obj
(3.12.6 Calling an occam FUNCTION)
endobj
193 0 obj
<< /S /GoTo /D (section.4) >>
endobj
196 0 obj
(4 The INMOS D705B occam-2 toolset)
endobj
197 0 obj
<< /S /GoTo /D (subsection.4.1) >>
endobj
200 0 obj
(4.1 Software development using the D705B)
endobj
201 0 obj
<< /S /GoTo /D (subsection.4.2) >>
endobj
204 0 obj
(4.2 File naming convention)
endobj
205 0 obj
<< /S /GoTo /D (subsection.4.3) >>
endobj
208 0 obj
(4.3 Processor types)
endobj
209 0 obj
<< /S /GoTo /D (subsection.4.4) >>
endobj
212 0 obj
(4.4 Error modes)
endobj
213 0 obj
<< /S /GoTo /D (subsection.4.5) >>
endobj
216 0 obj
(4.5 The makefile generator)
endobj
217 0 obj
<< /S /GoTo /D (subsection.4.6) >>
endobj
220 0 obj
(4.6 The occam compiler)
endobj
221 0 obj
<< /S /GoTo /D (subsection.4.7) >>
endobj
224 0 obj
(4.7 The syntax checker)
endobj
225 0 obj
<< /S /GoTo /D (subsection.4.8) >>
endobj
228 0 obj
(4.8 The librarian)
endobj
229 0 obj
<< /S /GoTo /D (subsection.4.9) >>
endobj
232 0 obj
(4.9 The linker)
endobj
233 0 obj
<< /S /GoTo /D (subsection.4.10) >>
endobj
236 0 obj
(4.10 Binary listen)
endobj
237 0 obj
<< /S /GoTo /D (subsection.4.11) >>
endobj
240 0 obj
(4.11 The bootstrap tool)
endobj
241 0 obj
<< /S /GoTo /D (subsection.4.12) >>
endobj
244 0 obj
(4.12 The configures)
endobj
245 0 obj
<< /S /GoTo /D (subsection.4.13) >>
endobj
248 0 obj
(4.13 The debugger)
endobj
249 0 obj
<< /S /GoTo /D (subsection.4.14) >>
endobj
252 0 obj
(4.14 The simulator)
endobj
253 0 obj
<< /S /GoTo /D (subsection.4.15) >>
endobj
256 0 obj
(4.15 Supplementary tools)
endobj
257 0 obj
<< /S /GoTo /D (section.5) >>
endobj
260 0 obj
(5 Handling non-occam processes)
endobj
261 0 obj
<< /S /GoTo /D (subsection.5.1) >>
endobj
264 0 obj
(5.1 Equivalent occam process technology)
endobj
265 0 obj
<< /S /GoTo /D (subsubsection.5.1.1) >>
endobj
268 0 obj
(5.1.1 The Type 1 interface)
endobj
269 0 obj
<< /S /GoTo /D (subsubsection.5.1.2) >>
endobj
272 0 obj
(5.1.2 The Type 2 Interface)
endobj
273 0 obj
<< /S /GoTo /D (subsubsection.5.1.3) >>
endobj
276 0 obj
(5.1.3 The Type 3 interface)
endobj
277 0 obj
<< /S /GoTo /D (subsection.5.2) >>
endobj
280 0 obj
(5.2 D705B Processor classes)
endobj
281 0 obj
<< /S /GoTo /D (subsection.5.3) >>
endobj
284 0 obj
(5.3 EOP Startup and shutdown overheads)
endobj
285 0 obj
<< /S /GoTo /D (subsection.5.4) >>
endobj
288 0 obj
(5.4 Practical considerations for writing harnesses)
endobj
289 0 obj
<< /S /GoTo /D (subsubsection.5.4.1) >>
endobj
292 0 obj
(5.4.1 Memory allocation by the standard scientific-language harness)
endobj
293 0 obj
<< /S /GoTo /D (subsubsection.5.4.2) >>
endobj
296 0 obj
(5.4.2 Writing harnesses to allocate scientific-language workspace memory)
endobj
297 0 obj
<< /S /GoTo /D (section*.2) >>
endobj
300 0 obj
( One scientific-language process)
endobj
301 0 obj
<< /S /GoTo /D (section*.3) >>
endobj
304 0 obj
( Two scientific-language processes)
endobj
305 0 obj
<< /S /GoTo /D (subsubsection.5.4.3) >>
endobj
308 0 obj
(5.4.3 Placing all EOP stacks below the code)
endobj
309 0 obj
<< /S /GoTo /D (subsubsection.5.4.4) >>
endobj
312 0 obj
(5.4.4 Establishing EOP workspace requirements)
endobj
313 0 obj
<< /S /GoTo /D (subsubsection.5.4.5) >>
endobj
316 0 obj
(5.4.5 Terminating the host file server)
endobj
317 0 obj
<< /S /GoTo /D (subsubsection.5.4.6) >>
endobj
320 0 obj
(5.4.6 Re-running the application without reloading)
endobj
321 0 obj
<< /S /GoTo /D (subsubsection.5.4.7) >>
endobj
324 0 obj
(5.4.7 Process priorities)
endobj
325 0 obj
<< /S /GoTo /D (section.6) >>
endobj
328 0 obj
(6 D7058 debugging guidelines)
endobj
329 0 obj
<< /S /GoTo /D (subsection.6.1) >>
endobj
332 0 obj
(6.1 Problems with conventional debugging techniques)
endobj
333 0 obj
<< /S /GoTo /D (subsection.6.2) >>
endobj
336 0 obj
(6.2 Error mode considerations)
endobj
337 0 obj
<< /S /GoTo /D (subsection.6.3) >>
endobj
340 0 obj
(6.3 Run-time debugging aids)
endobj
341 0 obj
<< /S /GoTo /D (subsection.6.4) >>
endobj
344 0 obj
(6.4 Debugging processes that are not connected to the host server)
endobj
345 0 obj
<< /S /GoTo /D (subsubsection.6.4.1) >>
endobj
348 0 obj
(6.4.1 Overview of technique)
endobj
349 0 obj
<< /S /GoTo /D (subsubsection.6.4.2) >>
endobj
352 0 obj
(6.4.2 Implementation detail)
endobj
353 0 obj
<< /S /GoTo /D (subsubsection.6.4.3) >>
endobj
356 0 obj
(6.4.3 What to do it you don't have a debugger)
endobj
357 0 obj
<< /S /GoTo /D (section.7) >>
endobj
360 0 obj
(7 Using the D705B occam-2 toolset)
endobj
361 0 obj
<< /S /GoTo /D (subsection.7.1) >>
endobj
364 0 obj
(7.1 About makefiles)
endobj
365 0 obj
<< /S /GoTo /D (subsection.7.2) >>
endobj
368 0 obj
(7.2 Two communicating EOPs on one transputer)
endobj
369 0 obj
<< /S /GoTo /D (subsubsection.7.2.1) >>
endobj
372 0 obj
(7.2.1 Operations overview)
endobj
373 0 obj
<< /S /GoTo /D (subsubsection.7.2.2) >>
endobj
376 0 obj
(7.2.2 The root EOP)
endobj
377 0 obj
<< /S /GoTo /D (subsubsection.7.2.3) >>
endobj
380 0 obj
(7.2.3 The remote EOP)
endobj
381 0 obj
<< /S /GoTo /D (subsubsection.7.2.4) >>
endobj
384 0 obj
(7.2.4 The occam bits)
endobj
385 0 obj
<< /S /GoTo /D (subsubsection.7.2.5) >>
endobj
388 0 obj
(7.2.5 Running the program)
endobj
389 0 obj
<< /S /GoTo /D (subsubsection.7.2.6) >>
endobj
392 0 obj
(7.2.6 Rebuilding)
endobj
393 0 obj
<< /S /GoTo /D (subsubsection.7.2.7) >>
endobj
396 0 obj
(7.2.7 Re-implementation of the EOPs)
endobj
397 0 obj
<< /S /GoTo /D (subsection.7.3) >>
endobj
400 0 obj
(7.3 Two communicating EOPs on two transputers)
endobj
401 0 obj
<< /S /GoTo /D (subsection.7.4) >>
endobj
404 0 obj
(7.4 Using the debugger with the twin EOP twin transputer system)
endobj
405 0 obj
<< /S /GoTo /D (subsection.7.5) >>
endobj
408 0 obj
(7.5 Placing the EOPs in a library)
endobj
409 0 obj
<< /S /GoTo /D (subsection.7.6) >>
endobj
412 0 obj
(7.6 Sharing code amongst EOPs in a system)
endobj
413 0 obj
<< /S /GoTo /D (subsubsection.7.6.1) >>
endobj
416 0 obj
(7.6.1 The EOPs)
endobj
417 0 obj
<< /S /GoTo /D (subsubsection.7.6.2) >>
endobj
420 0 obj
(7.6.2 The shared occam code)
endobj
421 0 obj
<< /S /GoTo /D (subsubsection.7.6.3) >>
endobj
424 0 obj
(7.6.3 Linker symbol optimization)
endobj
425 0 obj
<< /S /GoTo /D (subsubsection.7.6.4) >>
endobj
428 0 obj
(7.6.4 Calculating where specific modules are placed)
endobj
429 0 obj
<< /S /GoTo /D (subsubsection.7.6.5) >>
endobj
432 0 obj
(7.6.5 Using on-chip RAM effectively)
endobj
433 0 obj
<< /S /GoTo /D (subsection.7.7) >>
endobj
436 0 obj
(7.7 Hints and tips)
endobj
437 0 obj
<< /S /GoTo /D (subsubsection.7.7.1) >>
endobj
440 0 obj
(7.7.1 Library usage guidelines)
endobj
441 0 obj
<< /S /GoTo /D (subsubsection.7.7.2) >>
endobj
444 0 obj
(7.7.2 General usage guidelines)
endobj
445 0 obj
<< /S /GoTo /D (section.8) >>
endobj
448 0 obj
(8 Some useful checklists)
endobj
449 0 obj
<< /S /GoTo /D (subsection.8.1) >>
endobj
452 0 obj
(8.1 Setting things up for the D705B)
endobj
453 0 obj
<< /S /GoTo /D (subsection.8.2) >>
endobj
456 0 obj
(8.2 What to do if a multiple EOP system won't run \(on one transputer\))
endobj
457 0 obj
<< /S /GoTo /D (subsection.8.3) >>
endobj
460 0 obj
(8.3 What to do if a multiple EOP system won't run \(on many transputers\))
endobj
461 0 obj
<< /S /GoTo /D (subsection.8.4) >>
endobj
464 0 obj
(8.4 A summary of performance maximization techniques)
endobj
465 0 obj
<< /S /GoTo /D (section.9) >>
endobj
468 0 obj
(9 Summary and Conclusions)
endobj
469 0 obj
<< /S /GoTo /D (section*.4) >>
endobj
472 0 obj
(References)
endobj
473 0 obj
<< /S /GoTo /D [474 0 R /Fit ] >>
endobj
476 0 obj <<
/Length 372
/Filter /FlateDecode
>>
stream
xÚuRËNÃ0¼ç+öHdñúÛGZ( "(MÛHiRÚ Äß³s $N;Z{vgÆ°×ø§.Êä|E¤Fë,A¹YHÞv
¥tP®á5}9µý6Ë5é¸k"¸´Â,²·òr)°Ð«GçfÊÀ·(ëj?óbcèNÍ;í¸|£ÐyúÍï>ÿ;£:º¶®ÆvèO\É{BlE Eǵ0(Eõ> Ê8,ÞØ$O³q¤QéBã$*"PN¢&ª¸}¸|æåF¤eÆ
Q½ëÛ:ªGÃØDd̤ëoÎç+ezá§CÎ
¡¹]ýú§8ÞTûGÖÇ=ií(4\'²é3%Óñ8é`ÞÏÄ2ºÛãðq8xqlOãÐ
¡ìßüÔDc¼B:^Çw]ФTÊÂÏZ8[D)sLVæåò&ÿØçgúáOÃ
endstream
endobj
474 0 obj <<
/Type /Page
/Contents 476 0 R
/Resources 475 0 R
/MediaBox [0 0 595.276 841.89]
/Parent 483 0 R
>> endobj
477 0 obj <<
/D [474 0 R /XYZ 117.828 740.002 null]
>> endobj
478 0 obj <<
/D [474 0 R /XYZ 117.828 715.095 null]
>> endobj
475 0 obj <<
/Font << /F17 479 0 R /F19 480 0 R /F37 481 0 R /F15 482 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
487 0 obj <<
/Length 707
/Filter /FlateDecode
>>
stream
xÚuT[o0~ϯð£#á²>¥YÚ2¤K¨ª¨Ú!Nc
bfȪþûÙ>&
Ú&$Û|çï\m½!ÝÜÿìT.¢È§ÄòÂ^Êzôkä÷»}lÂ3vÖ}£ïêëùй`¼ÍG×wt^ò=¢4"±zA@"¡|^ñfûXÆïû¸.Æ^?ôO¢û2þ;h@Ü9&ñ}0§d¨òêLgbì(¢ßk.×ÇÝéC³¢cU¸°Z+W5@û^Vû ¼uÍd©@Ødc|]i(Ávþèõ¶/u¬úÄs}%ÉdiìxÛT6yU+(03©B©cÉ,ÜW
ÌÄØÕÍ°ÎٮμÖl¥8)®
&úÜi¨R4&HÉßÆã0¡Êgä¬+¤5Uíä%kÁ`/E
0tFÎ1)¨ÿnv~àÊ>ð<¼Ó
pyª ¯Ó0Åg1o;É·§í¬àãMaÛãEOÑòΫ
í¥¢ý©R+¾¤ùÃò97»ÃÎN±¾øeL)ÅÓÕjºÈ77½óî 4OCÌ êGA]Ô×MÅuZç]«RÂLvý`*Øz6_itö ÜèQÞ¦i¾Bh}×îÒ|1_¯¡3wÚz¹É¶'C´ÒkΧVüô¼zZ®çäL®îzl{.²åÚlÁ)ÀËÙlÙ¹¶ñ,v¬.äO;&m¥àøÈk®zùéÈ' ¹p4PÞZ?öiQ÷Z
ÊÖÌ
駫ó®ï×je¶^.@#ã¥Yc+;)¼´qÞKqjWÉ