1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4<meta http-equiv="Content-Style-Type" content="text/css">
5<title>Hardware Specifications</title>
6<style type="text/css">
7<!--
8body {
9/*
10    font-size       : 10pt;
11*/
12    font-weight     : normal;
13    color           : #000000;
14    margin          : 8px;
15}
16
17div {
18    width           : 98%;
19    white-space     : nowrap;
20}
21
22div.title {
23    text-align      : left;
24    font-weight     : bold;
25/*
26    font-size       : 16pt;
27*/
28    font-size       : 150%;
29    color           : #202020;
30    border-style    : double;
31    border-width    : 8px;
32    /* タイトルを囲む枠線の色を指定 */
33    border-color    : #CD202C;
34
35    /* RVLプラットフォーム系列 */
36/*
37    border-color    : #34beed;
38*/
39
40    /* TWLプラットフォーム系列 */
41/*
42    border-color    : #ff458f;
43*/
44
45    margin          : 4px;
46    padding         : 4px;
47}
48H1 {
49  font-size		: 150%;
50  font-family		: Arial;
51  border-bottom-width	: 5px;
52  border-bottom-style	: solid;
53  border-bottom-color	: #CD202C;
54  padding-bottom		: 1px;
55  margin-bottom		: 20px;
56  letter-spacing		: normal;
57  font-weight		: bold;
58}
59
60h2 {
61    font-weight     : bold;
62/*
63    font-size       : 16pt;
64*/
65    font-size       : 150%;
66    border-style    : none none solid double;
67    border-width    : 0px 0px 2px 8px;
68    /* 見出しの線の色を指定 */
69    border-color    : #CD202C;
70
71    /* RVLプラットフォーム系列 */
72/*
73    border-color    : #34beed;
74*/
75
76    /* TWLプラットフォーム系列 */
77/*
78    border-color    : #ff458f;
79*/
80
81    margin-left     : 2px;
82    padding-left    : 4px;
83}
84CODE {
85  font-family		: "Courier New", monospace;
86  position		: normal;
87  left			: 12px;
88  font-size		: 10pt;
89}
90table {
91  margin-top        : 2pt;
92  margin-bottom     : 2pt;
93  margin-left       : 0pt;
94  margin-right      : 0pt;
95  padding-left      : 0pt;
96  padding-right     : 0pt;
97  position          : relative;
98  left              : 12px;
99  font-family       : Arial;
100  font-size         : 10pt;
101  border-style      : none none none none;
102}
103td,th {
104  padding           : 2pt;
105  border-width      : 2pt;
106  border-style      : none none none none;
107  font-style        : normal;
108  text-align        : left;
109}
110td {
111  background        : #e8f4f4;
112  font-weight       : normal;
113}
114th {
115  background        : #c0d8d8;
116  font-weight       : bold;
117}
118
119p {
120    margin-left     : 4px;
121}
122p.code {
123  font-family		: "Courier New", monospace;
124  position		: normal;
125  left			: 12px;
126  font-size		: 10pt;
127  background            : #e8f4f4;
128}
129
130-->
131</style>
132<link rel="stylesheet" href="../css/timetable.css" type="text/css" />
133
134</head>
135<body>
136<a name="top"></a>
137
138<h1>Hardware Specifications</h1>
139
140
141
142    <div>
143      Stage Structure Conceptual Diagram<br>
144      <table class="timetable">
145        <tr>
146          <th></th>
147          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th>
148        </tr>
149        <tr>
150          <th>inst.1</th>
151          <td class="prefetch">p.fetch</td>
152          <td class="fetch">fetch</td>
153          <td class="decode">decode</td>
154          <td class="read">read</td>
155          <td class="exec">exec</td>
156          <td class="post">post</td>
157          <td class="write">write</td>
158          <td class="dummy"></td>
159        </tr>
160        <tr>
161          <th>inst.2</th>
162          <td class="empty" colspan="1"></td>
163          <td class="prefetch">p.fetch</td>
164          <td class="fetch">fetch</td>
165          <td class="decode">decode</td>
166          <td class="read">read</td>
167          <td class="exec">exec</td>
168          <td class="post">post</td>
169          <td class="write">write</td>
170          <td class="dummy"></td>
171        </tr>
172        <tr>
173          <th>inst.3</th>
174          <td class="empty" colspan="2"></td>
175          <td class="prefetch">p.fetch</td>
176          <td class="fetch">fetch</td>
177          <td class="decode">decode</td>
178          <td class="read">read</td>
179          <td class="exec">exec</td>
180          <td class="post">post</td>
181          <td class="write">write</td>
182          <td class="dummy"></td>
183        </tr>
184      </table>
185    </div>
186
187    <br> <br>
188
189    <div>
190      Flow control (when the PC changes by +2)<br>
191      <table class="timetable">
192        <tr>
193          <th></th>
194          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
195        </tr>
196        <tr>
197          <th>inst.1</th>
198          <td class="prefetch">p.fetch</td>
199          <td class="fetch">fetch</td>
200          <td class="decode">decode</td>
201          <td class="flow">ifb</td>
202          <td class="stall" colspan="1">STALL</td>
203        </tr>
204        <tr>
205          <th>inst.2</th>
206          <td class="empty" colspan="1"></td>
207          <td class="prefetch">p.fetch</td>
208          <td class="fetch">fetch</td>
209          <td class="drop">drop</td>
210        </tr>
211        <tr>
212          <th>inst.3</th>
213          <td class="empty" colspan="2"></td>
214          <td class="prefetch">p.fetch</td>
215          <td class="fetch">fetch</td>
216          <td class="decode">decode</td>
217          <td class="read">read</td>
218          <td class="exec">exec</td>
219          <td class="post">post</td>
220          <td class="write">write</td>
221          <td class="dummy"></td>
222        </tr>
223        <tr>
224          <th>inst.4</th>
225          <td class="empty" colspan="3"></td>
226          <td class="prefetch">p.fetch</td>
227          <td class="fetch">fetch</td>
228          <td class="decode">decode</td>
229          <td class="read">read</td>
230          <td class="exec">exec</td>
231          <td class="post">post</td>
232          <td class="write">write</td>
233          <td class="dummy"></td>
234        </tr>
235      </table>
236    </div>
237
238    <br> <br>
239
240    <div>
241      Flow control (when the PC changes by +3 or more)<br>
242      <table class="timetable">
243        <tr>
244          <th></th>
245          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
246          <th>11</th>
247        </tr>
248        <tr>
249          <th>inst.1</th>
250          <td class="prefetch">p.fetch</td>
251          <td class="fetch">fetch</td>
252          <td class="decode">decode</td>
253          <td class="flow">ifb</td>
254          <td class="stall" colspan="2">STALL</td>
255        </tr>
256        <tr>
257          <th>inst.2</th>
258          <td class="empty" colspan="1"></td>
259          <td class="prefetch">p.fetch</td>
260          <td class="decode">decode</td>
261          <td class="drop">drop</td>
262        </tr>
263        <tr>
264          <th>inst.3</th>
265          <td class="empty" colspan="2"></td>
266          <td class="prefetch">p.fetch</td>
267          <td class="drop">drop</td>
268        </tr>
269        <tr>
270          <th>inst.n</th>
271          <td class="empty" colspan="3"></td>
272          <td class="prefetch">p.fetch</td>
273          <td class="fetch">fetch</td>
274          <td class="decode">decode</td>
275          <td class="read">read</td>
276          <td class="exec">exec</td>
277          <td class="post">post</td>
278          <td class="write">write</td>
279          <td class="dummy"></td>
280        </tr>
281        <tr>
282          <th>inst.n+1</th>
283          <td class="empty" colspan="4"></td>
284          <td class="prefetch">p.fetch</td>
285          <td class="fetch">fetch</td>
286          <td class="decode">decode</td>
287          <td class="read">read</td>
288          <td class="exec">exec</td>
289          <td class="post">post</td>
290          <td class="write">write</td>
291          <td class="dummy"></td>
292        </tr>
293      </table>
294    </div>
295
296    <br> <br>
297
298    <div>
299      Assuming a forced stall for 3 clock cycles when the <CODE>mova</CODE> instruction is executed<br>
300      <table class="timetable">
301        <tr>
302          <th></th>
303          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
304          <th>11</th><th>12</th>
305        </tr>
306        <tr>
307          <th>mova</th>
308          <td class="prefetch">p.fetch</td>
309          <td class="fetch">fetch</td>
310          <td class="decode">decode</td>
311          <td class="read">read</td>
312          <td class="MOVA">mova</td>
313          <td class="write" colspan="2">write</td>
314          <td class="dummy"></td>
315        </tr>
316        <tr>
317          <th>inst.2</th>
318          <td class="empty" colspan="1"></td>
319          <td class="prefetch">p.fetch</td>
320          <td class="fetch">fetch</td>
321          <td class="decode">decode</td>
322          <td class="stall" colspan="3">STALL</td>
323          <td class="read">read</td>
324          <td class="exec">exec</td>
325          <td class="post">post</td>
326          <td class="write">write</td>
327          <td class="dummy"></td>
328        </tr>
329        <tr>
330          <th>inst.3</th>
331          <td class="empty" colspan="2"></td>
332          <td class="prefetch">p.fetch</td>
333          <td class="fetch">fetch</td>
334          <td class="stall" colspan="3">STALL</td>
335          <td class="decode">decode</td>
336          <td class="read">read</td>
337          <td class="exec">exec</td>
338          <td class="post">post</td>
339          <td class="write">write</td>
340          <td class="dummy"></td>
341        </tr>
342      </table>
343    </div>
344
345    <br> <br>
346
347    <div>
348      Assuming another fetch is performed when the <CODE>mova</CODE> instruction is executed<br>
349      <table class="timetable">
350        <tr>
351          <th></th>
352          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
353          <th>11</th><th>12</th><th>13</th>
354        </tr>
355        <tr>
356          <th>mova</th>
357          <td class="prefetch">p.fetch</td>
358          <td class="fetch">fetch</td>
359          <td class="decode">decode</td>
360          <td class="read">read</td>
361          <td class="mova">mova</td>
362          <td class="stall" colspan="2">STALL</td>
363          <td class="dummy"></td>
364        </tr>
365        <tr>
366          <th>inst.2</th>
367          <td class="empty" colspan="1"></td>
368          <td class="prefetch">p.fetch</td>
369          <td class="fetch">fetch</td>
370          <td class="decode">decode</td>
371          <td class="prefetch">p.fetch</td>
372          <td class="fetch">fetch</td>
373          <td class="decode">decode</td>
374          <td class="read">read</td>
375          <td class="exec">exec</td>
376          <td class="post">post</td>
377          <td class="write">write</td>
378          <td class="dummy"></td>
379        </tr>
380        <tr>
381          <th>inst.3</th>
382          <td class="empty" colspan="2"></td>
383          <td class="prefetch">p.fetch</td>
384          <td class="fetch">fetch</td>
385          <td class="drop">drop</td>
386          <td class="prefetch">p.fetch</td>
387          <td class="fetch">fetch</td>
388          <td class="decode">decode</td>
389          <td class="read">read</td>
390          <td class="exec">exec</td>
391          <td class="post">post</td>
392          <td class="write">write</td>
393          <td class="dummy"></td>
394        </tr>
395        <tr>
396          <th>inst.4</th>
397          <td class="empty" colspan="3"></td>
398          <td class="prefetch">p.fetch</td>
399          <td class="drop">drop</td>
400          <td class="empty" colspan="1"></td>
401          <td class="prefetch">p.fetch</td>
402          <td class="fetch">fetch</td>
403          <td class="decode">decode</td>
404          <td class="read">read</td>
405          <td class="exec">exec</td>
406          <td class="post">post</td>
407          <td class="write">write</td>
408          <td class="dummy"></td>
409        </tr>
410      </table>
411
412      <br> <br>
413
414      When two instructions can execute in parallel (when <CODE>read</CODE> can overlap <CODE>write</CODE> of the previous instruction)<br>
415      <table class="timetable">
416        <tr>
417          <th></th>
418          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
419          <th>11</th>
420        </tr>
421        <tr>
422          <th>dp3</th>
423          <td class="fetch">fetch</td>
424          <td class="decode">decode</td>
425          <td class="read">read</td>
426          <td class="MUL">MUL</td>
427          <td class="ADD">ADD</td>
428          <td class="ADD">ADD</td>
429          <td class="write">write</td>
430        </tr>
431        <tr>
432          <th>mad</th>
433          <td class="prefetch">p.fetch</td>
434          <td class="fetch">fetch</td>
435          <td class="decode">decode</td>
436          <td class="read">read</td>
437          <td class="MUL">MUL</td>
438          <td class="stall" colspan="1">STALL</td>
439          <td class="ADD">ADD</td>
440          <td class="write">write</td>
441        </tr>
442        <tr>
443          <th>add</th>
444          <td class="empty" colspan="1"></td>
445          <td class="prefetch">p.fetch</td>
446          <td class="fetch">fetch</td>
447          <td class="decode">decode</td>
448          <td class="stall" colspan="2">STALL</td>
449          <td class="read">read</td>
450          <td class="ADD">ADD</td>
451          <td class="write">write</td>
452        </tr>
453        <tr>
454          <th>add</th>
455          <td class="empty" colspan="2"></td>
456          <td class="prefetch">p.fetch</td>
457          <td class="fetch">fetch</td>
458          <td class="stall" colspan="2">STALL</td>
459          <td class="decode">decode</td>
460          <td class="read">read</td>
461          <td class="ADD">ADD</td>
462          <td class="write">write</td>
463        </tr>
464        <tr>
465          <th>add</th>
466          <td class="empty" colspan="3"></td>
467          <td class="prefetch">p.fetch</td>
468          <td class="stall" colspan="2">STALL</td>
469          <td class="fetch">fetch</td>
470          <td class="decode">decode</td>
471          <td class="read">read</td>
472          <td class="ADD">ADD</td>
473          <td class="write">write</td>
474          <td class="dummy"></td>
475        </tr>
476      </table>
477
478      <br> <br>
479
480      When <CODE>dp3</CODE> and <CODE>mad</CODE> are called in succession repeatedly without any concern for the ability to run in parallel<br>
481      <table class="timetable">
482        <tr>
483          <th></th>
484          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
485          <th>11</th><th>12</th><th>13</th><th>14</th><th>15</th><th>16</th><th>17</th><th>18</th><th>19</th><th>20</th>
486        </tr>
487        <tr>
488          <th>dp3</th>
489          <td class="fetch">fetch</td>
490          <td class="decode">decode</td>
491          <td class="read">read</td>
492          <td class="MUL">MUL</td>
493          <td class="ADD">ADD</td>
494          <td class="ADD">ADD</td>
495          <td class="write">write</td>
496        </tr>
497        <tr>
498          <th>mad</th>
499          <td class="prefetch">p.fetch</td>
500          <td class="fetch">fetch</td>
501          <td class="decode">decode</td>
502          <td class="read">read</td>
503          <td class="MUL">MUL</td>
504          <td class="stall" colspan="1">STALL</td>
505          <td class="ADD">ADD</td>
506          <td class="write">write</td>
507        </tr>
508        <tr>
509          <th>dp3</th>
510          <td class="empty" colspan="1"></td>
511          <td class="prefetch">p.fetch</td>
512          <td class="fetch">fetch</td>
513          <td class="decode">decode</td>
514          <td class="read">read</td>
515          <td class="MUL">MUL</td>
516          <td class="stall" colspan="1">STALL</td>
517          <td class="ADD">ADD</td>
518          <td class="ADD">ADD</td>
519          <td class="write">write</td>
520        </tr>
521        <tr>
522          <th>mad</th>
523          <td class="empty" colspan="2"></td>
524          <td class="prefetch">p.fetch</td>
525          <td class="fetch">fetch</td>
526          <td class="decode">decode</td>
527          <td class="read">read</td>
528          <td class="MUL">MUL</td>
529          <td class="stall" colspan="2">STALL</td>
530          <td class="ADD">ADD</td>
531          <td class="write">write</td>
532        </tr>
533        <tr>
534          <th>dp3</th>
535          <td class="empty" colspan="3"></td>
536          <td class="prefetch">p.fetch</td>
537          <td class="fetch">fetch</td>
538          <td class="decode">decode</td>
539          <td class="read">read</td>
540          <td class="MUL">MUL</td>
541          <td class="stall" colspan="2">STALL</td>
542          <td class="ADD">ADD</td>
543          <td class="ADD">ADD</td>
544          <td class="write">write</td>
545        </tr>
546        <tr>
547          <th>mad</th>
548          <td class="empty" colspan="4"></td>
549          <td class="prefetch">p.fetch</td>
550          <td class="fetch">fetch</td>
551          <td class="decode">decode</td>
552          <td class="read">read</td>
553          <td class="MUL">MUL</td>
554          <td class="stall" colspan="3">STALL</td>
555          <td class="ADD">ADD</td>
556          <td class="write">write</td>
557        </tr>
558        <tr>
559          <th>dp3</th>
560          <td class="empty" colspan="5"></td>
561          <td class="prefetch">p.fetch</td>
562          <td class="fetch">fetch</td>
563          <td class="decode">decode</td>
564          <td class="read">read</td>
565          <td class="MUL">MUL</td>
566          <td class="stall" colspan="3">STALL</td>
567          <td class="ADD">ADD</td>
568          <td class="ADD">ADD</td>
569          <td class="write">write</td>
570        </tr>
571        <tr>
572          <th>mad</th>
573          <td class="empty" colspan="6"></td>
574          <td class="prefetch">p.fetch</td>
575          <td class="fetch">fetch</td>
576          <td class="decode">decode</td>
577          <td class="read">read</td>
578          <td class="MUL">MUL</td>
579          <td class="stall" colspan="4">STALL</td>
580          <td class="ADD">ADD</td>
581          <td class="write">write</td>
582        </tr>
583        <tr>
584          <th>dp3</th>
585          <td class="empty" colspan="7"></td>
586          <td class="prefetch">p.fetch</td>
587          <td class="fetch">fetch</td>
588          <td class="decode">decode</td>
589          <td class="read">read</td>
590          <td class="MUL">MUL</td>
591          <td class="stall" colspan="4">STALL</td>
592          <td class="ADD">ADD</td>
593          <td class="ADD">ADD</td>
594          <td class="write">write</td>
595        </tr>
596        <tr>
597          <th>mad</th>
598          <td class="empty" colspan="8"></td>
599          <td class="prefetch">p.fetch</td>
600          <td class="fetch">fetch</td>
601          <td class="decode">decode</td>
602          <td class="read">read</td>
603          <td class="MUL">MUL</td>
604          <td class="stall" colspan="5">STALL</td>
605          <td class="ADD">ADD</td>
606          <td class="write">write</td>
607          <td class="dummy"></td>
608        </tr>
609      </table>
610
611      <br> <br>
612
613      When two instructions are executed in parallel and the combination of <CODE>dp3</CODE> and <CODE>mad</CODE> are called repeatedly<br>
614      <table class="timetable">
615        <tr>
616          <th></th>
617          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
618          <th>11</th><th>12</th><th>13</th><th>14</th><th>15</th><th>16</th><th>17</th><th>18</th><th>19</th><th>20</th>
619          <th>21</th><th>22</th><th>23</th><th>24</th>
620        </tr>
621        <tr>
622          <th>dp3</th>
623          <td class="fetch">fetch</td>
624          <td class="decode">decode</td>
625          <td class="read">read</td>
626          <td class="MUL">MUL</td>
627          <td class="ADD">ADD</td>
628          <td class="ADD">ADD</td>
629          <td class="write">write</td>
630        </tr>
631        <tr>
632          <th>mad</th>
633          <td class="prefetch">p.fetch</td>
634          <td class="fetch">fetch</td>
635          <td class="decode">decode</td>
636          <td class="read">read</td>
637          <td class="MUL">MUL</td>
638          <td class="stall" colspan="1">STALL</td>
639          <td class="ADD">ADD</td>
640          <td class="write">write</td>
641        </tr>
642        <tr>
643          <th>dp3</th>
644          <td class="empty" colspan="1"></td>
645          <td class="prefetch">p.fetch</td>
646          <td class="fetch">fetch</td>
647          <td class="decode">decode</td>
648          <td class="wait" colspan="2">wait         1</td>
649          <td class="read">read</td>
650          <td class="MUL">MUL</td>
651          <td class="ADD">ADD</td>
652          <td class="ADD">ADD</td>
653          <td class="write">write</td>
654        </tr>
655        <tr>
656          <th>mad</th>
657          <td class="empty" colspan="2"></td>
658          <td class="prefetch">p.fetch</td>
659          <td class="fetch">fetch</td>
660          <td class="wait" colspan="2">wait         1</td>
661          <td class="decode">decode</td>
662          <td class="read">read</td>
663          <td class="MUL">MUL</td>
664          <td class="stall" colspan="1">STALL</td>
665          <td class="ADD">ADD</td>
666          <td class="write">write</td>
667        </tr>
668        <tr>
669          <th>dp3</th>
670          <td class="empty" colspan="3"></td>
671          <td class="prefetch">p.fetch</td>
672          <td class="wait" colspan="2">wait         1</td>
673          <td class="fetch">fetch</td>
674          <td class="decode">decode</td>
675          <td class="wait" colspan="2">wait         1</td>
676          <td class="read">read</td>
677          <td class="MUL">MUL</td>
678          <td class="ADD">ADD</td>
679          <td class="ADD">ADD</td>
680          <td class="write">write</td>
681        </tr>
682        <tr>
683          <th>mad</th>
684          <td class="empty" colspan="6"></td>
685          <td class="prefetch">p.fetch</td>
686          <td class="fetch">fetch</td>
687          <td class="wait" colspan="2">wait         1</td>
688          <td class="decode">decode</td>
689          <td class="read">read</td>
690          <td class="MUL">MUL</td>
691          <td class="stall" colspan="1">STALL</td>
692          <td class="ADD">ADD</td>
693          <td class="write">write</td>
694        </tr>
695        <tr>
696          <th>dp3</th>
697          <td class="empty" colspan="7"></td>
698          <td class="prefetch">p.fetch</td>
699          <td class="wait" colspan="2">wait         1</td>
700          <td class="fetch">fetch</td>
701          <td class="decode">decode</td>
702          <td class="wait" colspan="2">wait         1</td>
703          <td class="read">read</td>
704          <td class="MUL">MUL</td>
705          <td class="ADD">ADD</td>
706          <td class="ADD">ADD</td>
707          <td class="write">write</td>
708        </tr>
709        <tr>
710          <th>mad</th>
711          <td class="empty" colspan="10"></td>
712          <td class="prefetch">p.fetch</td>
713          <td class="fetch">fetch</td>
714          <td class="wait" colspan="2">wait         1</td>
715          <td class="decode">decode</td>
716          <td class="read">read</td>
717          <td class="MUL">MUL</td>
718          <td class="stall" colspan="1">STALL</td>
719          <td class="ADD">ADD</td>
720          <td class="write">write</td>
721        </tr>
722        <tr>
723          <th>dp3</th>
724          <td class="empty" colspan="11"></td>
725          <td class="prefetch">p.fetch</td>
726          <td class="wait" colspan="2">wait         1</td>
727          <td class="fetch">fetch</td>
728          <td class="decode">decode</td>
729          <td class="wait" colspan="2">wait         1</td>
730          <td class="read">read</td>
731          <td class="MUL">MUL</td>
732          <td class="ADD">ADD</td>
733          <td class="ADD">ADD</td>
734          <td class="write">write</td>
735        </tr>
736        <tr>
737          <th>mad</th>
738          <td class="empty" colspan="14"></td>
739          <td class="prefetch">p.fetch</td>
740          <td class="fetch">fetch</td>
741          <td class="wait" colspan="2">wait         1</td>
742          <td class="decode">decode</td>
743          <td class="read">read</td>
744          <td class="MUL">MUL</td>
745          <td class="stall" colspan="1">STALL</td>
746          <td class="ADD">ADD</td>
747          <td class="write">write</td>
748          <td class="dummy"></td>
749        </tr>
750      </table>
751
752      <br> <br>
753
754      Details for when <CODE>sincos</CODE> has been called<br>
755      <table class="timetable">
756        <tr>
757          <th></th>
758          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
759          <th>11</th><th>12</th><th>13</th><th>14</th><th>15</th><th>16</th><th>17</th><th>18</th><th>19</th><th>20</th>
760          <th>21</th><th>22</th><th>23</th><th>24</th><th>25</th><th>26</th><th>27</th><th>28</th><th>29</th><th>30</th>
761        </tr>
762        <tr>
763          <th>mov</th>
764          <td class="fetch">fetch</td>
765          <td class="decode">decode</td>
766          <td class="read">read</td>
767          <td class="write">write</td>
768        </tr>
769        <tr>
770          <th>mov</th>
771          <td class="prefetch">p.fetch</td>
772          <td class="fetch">fetch</td>
773          <td class="decode">decode</td>
774          <td class="read">read</td>
775          <td class="write">write</td>
776        </tr>
777        <tr>
778          <th>mul</th>
779          <td class="empty" colspan="1"></td>
780          <td class="prefetch">p.fetch</td>
781          <td class="fetch">fetch</td>
782          <td class="decode">decode</td>
783          <td class="read">read</td>
784          <td class="MUL">MUL</td>
785          <td class="write">write</td>
786        </tr>
787        <tr>
788          <th>mad</th>
789          <td class="empty" colspan="2"></td>
790          <td class="prefetch">p.fetch</td>
791          <td class="fetch">fetch</td>
792          <td class="decode">decode</td>
793          <td class="stall" colspan="2">STALL</td>
794          <td class="read">read</td>
795          <td class="MUL">MUL</td>
796          <td class="ADD">ADD</td>
797          <td class="write">write</td>
798        </tr>
799        <tr>
800          <th>mad</th>
801          <td class="empty" colspan="3"></td>
802          <td class="prefetch">p.fetch</td>
803          <td class="fetch">fetch</td>
804          <td class="stall" colspan="2">STALL</td>
805          <td class="decode">decode</td>
806          <td class="stall" colspan="3">STALL</td>
807          <td class="read">read</td>
808          <td class="MUL">MUL</td>
809          <td class="ADD">ADD</td>
810          <td class="write">write</td>
811        </tr>
812        <tr>
813          <th>mad</th>
814          <td class="empty" colspan="4"></td>
815          <td class="prefetch">p.fetch</td>
816          <td class="stall" colspan="2">STALL</td>
817          <td class="fetch">fetch</td>
818          <td class="stall" colspan="3">STALL</td>
819          <td class="decode">decode</td>
820          <td class="stall" colspan="3">STALL</td>
821          <td class="read">read</td>
822          <td class="MUL">MUL</td>
823          <td class="ADD">ADD</td>
824          <td class="write">write</td>
825        </tr>
826        <tr>
827          <th>mov</th>
828          <td class="empty" colspan="7"></td>
829          <td class="prefetch">p.fetch</td>
830          <td class="stall" colspan="3">STALL</td>
831          <td class="fetch">fetch</td>
832          <td class="stall" colspan="3">STALL</td>
833          <td class="decode">decode</td>
834          <td class="read">read</td>
835          <td class="write">write</td>
836        </tr>
837        <tr>
838          <th>mad</th>
839          <td class="empty" colspan="11"></td>
840          <td class="prefetch">p.fetch</td>
841          <td class="stall" colspan="3">STALL</td>
842          <td class="fetch">fetch</td>
843          <td class="decode">decode</td>
844          <td class="stall" colspan="2">STALL</td>
845          <td class="read">read</td>
846          <td class="MUL">MUL</td>
847          <td class="ADD">ADD</td>
848          <td class="write">write</td>
849        </tr>
850        <tr>
851          <th>mad</th>
852          <td class="empty" colspan="15"></td>
853          <td class="prefetch">p.fetch</td>
854          <td class="fetch">fetch</td>
855          <td class="stall" colspan="2">STALL</td>
856          <td class="decode">decode</td>
857          <td class="stall" colspan="3">STALL</td>
858          <td class="read">read</td>
859          <td class="MUL">MUL</td>
860          <td class="ADD">ADD</td>
861          <td class="write">write</td>
862        </tr>
863        <tr>
864          <th>mul</th>
865          <td class="empty" colspan="16"></td>
866          <td class="prefetch">p.fetch</td>
867          <td class="stall" colspan="2">STALL</td>
868          <td class="fetch">fetch</td>
869          <td class="stall" colspan="3">STALL</td>
870          <td class="decode">decode</td>
871          <td class="stall" colspan="3">STALL</td>
872          <td class="read">read</td>
873          <td class="MUL">MUL</td>
874          <td class="write">write</td>
875          <td class="dummy"></td>
876        </tr>
877      </table>
878
879      <br> <br>
880
881      When two instructions are executed in parallel and <CODE>dp4</CODE> is called repeatedly<br>
882      <table class="timetable">
883        <tr>
884          <th></th>
885          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
886          <th>11</th><th>12</th>
887        </tr>
888        <tr>
889          <th>dp4</th>
890          <td class="fetch">fetch</td>
891          <td class="decode">decode</td>
892          <td class="read">read</td>
893          <td class="MUL">MUL</td>
894          <td class="ADD">ADD</td>
895          <td class="ADD">ADD</td>
896          <td class="write">write</td>
897        </tr>
898        <tr>
899          <th>dp4</th>
900          <td class="prefetch">p.fetch</td>
901          <td class="fetch">fetch</td>
902          <td class="decode">decode</td>
903          <td class="read">read</td>
904          <td class="MUL">MUL</td>
905          <td class="ADD">ADD</td>
906          <td class="ADD">ADD</td>
907          <td class="write">write</td>
908        </tr>
909        <tr>
910          <th>dp4</th>
911          <td class="empty" colspan="1"></td>
912          <td class="prefetch">p.fetch</td>
913          <td class="fetch">fetch</td>
914          <td class="decode">decode</td>
915          <td class="wait" colspan="2">wait         1</td>
916          <td class="read">read</td>
917          <td class="MUL">MUL</td>
918          <td class="ADD">ADD</td>
919          <td class="ADD">ADD</td>
920          <td class="write">write</td>
921        </tr>
922        <tr>
923          <th>dp4</th>
924          <td class="empty" colspan="2"></td>
925          <td class="prefetch">p.fetch</td>
926          <td class="fetch">fetch</td>
927<td class="wait" colspan="2">wait</td>
928          <td class="decode">decode</td>
929          <td class="read">read</td>
930          <td class="MUL">MUL</td>
931          <td class="ADD">ADD</td>
932          <td class="ADD">ADD</td>
933          <td class="write">write</td>
934          <td class="dummy"></td>
935        </tr>
936      </table>
937
938      <br> <br>
939
940      When the <CODE>write</CODE> of <CODE>dp4</CODE> is cancelled by <CODE>mov</CODE>, and <CODE>mul</CODE> stalls due to <CODE>dp4</CODE><br>
941      <table class="timetable">
942        <tr>
943          <th></th>
944          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
945          <th>11</th><th>12</th><th>13</th>
946        </tr>
947        <tr>
948          <th>dp4</th>
949          <td class="fetch">fetch</td>
950          <td class="decode">decode</td>
951          <td class="read">read</td>
952          <td class="MUL">MUL</td>
953          <td class="ADD">ADD</td>
954          <td class="ADD">ADD</td>
955          <td class="cancel">cancel</td>
956        </tr>
957        <tr>
958          <th>mov</th>
959          <td class="prefetch">p.fetch</td>
960          <td class="fetch">fetch</td>
961          <td class="decode">decode</td>
962          <td class="read">read</td>
963          <td class="write">write</td>
964        </tr>
965        <tr>
966          <th>mul</th>
967          <td class="empty" colspan="1"></td>
968          <td class="prefetch">p.fetch</td>
969          <td class="fetch">fetch</td>
970          <td class="decode">decode</td>
971          <td class="stall" colspan="3">STALL</td>
972          <td class="read">read</td>
973          <td class="MUL">MUL</td>
974          <td class="write">write</td>
975        </tr>
976        <tr>
977          <th>dp4</th>
978          <td class="empty" colspan="2"></td>
979          <td class="prefetch">p.fetch</td>
980          <td class="fetch">fetch</td>
981          <td class="stall" colspan="3">STALL</td>
982          <td class="decode">decode</td>
983          <td class="read">read</td>
984          <td class="MUL">MUL</td>
985          <td class="ADD">ADD</td>
986          <td class="ADD">ADD</td>
987          <td class="write">write</td>
988          <td class="dummy"></td>
989        </tr>
990      </table>
991
992      <br> <br>
993
994      When the <CODE>write</CODE> of <CODE>dp4</CODE> is cancelled by <CODE>mov</CODE>, but <CODE>mul</CODE> can execute even though the execution of <CODE>dp4</CODE> is not complete<br>
995      <table class="timetable">
996        <tr>
997          <th></th>
998          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
999        </tr>
1000        <tr>
1001          <th>dp4</th>
1002          <td class="fetch">fetch</td>
1003          <td class="decode">decode</td>
1004          <td class="read">read</td>
1005          <td class="MUL">MUL</td>
1006          <td class="ADD">ADD</td>
1007          <td class="ADD">ADD</td>
1008          <td class="cancel">cancel</td>
1009        </tr>
1010        <tr>
1011          <th>mov</th>
1012          <td class="prefetch">p.fetch</td>
1013          <td class="fetch">fetch</td>
1014          <td class="decode">decode</td>
1015          <td class="read">read</td>
1016          <td class="write">write</td>
1017        </tr>
1018        <tr>
1019          <th>mul</th>
1020          <td class="empty" colspan="1"></td>
1021          <td class="prefetch">p.fetch</td>
1022          <td class="fetch">fetch</td>
1023          <td class="decode">decode</td>
1024          <td class="read">read</td>
1025          <td class="MUL">MUL</td>
1026          <td class="write">write</td>
1027        </tr>
1028        <tr>
1029          <th>dp4</th>
1030          <td class="empty" colspan="2"></td>
1031          <td class="prefetch">p.fetch</td>
1032          <td class="fetch">fetch</td>
1033          <td class="decode">decode</td>
1034          <td class="read">read</td>
1035          <td class="MUL">MUL</td>
1036          <td class="ADD">ADD</td>
1037          <td class="ADD">ADD</td>
1038          <td class="write">write</td>
1039          <td class="dummy"></td>
1040        </tr>
1041      </table>
1042
1043      <br> <br>
1044
1045      When the <CODE>write</CODE> of <CODE>dp4</CODE> is cancelled by <CODE>mov</CODE>, and <CODE>mul</CODE> cannot execute until the execution of <CODE>dp4</CODE> has ended (only <CODE>write</CODE> is cancelled)<br>
1046      <table class="timetable">
1047        <tr>
1048          <th></th>
1049          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
1050          <th>11</th><th>12</th>
1051        </tr>
1052        <tr>
1053          <th>dp4</th>
1054          <td class="fetch">fetch</td>
1055          <td class="decode">decode</td>
1056          <td class="read">read</td>
1057          <td class="MUL">MUL</td>
1058          <td class="ADD">ADD</td>
1059          <td class="ADD">ADD</td>
1060          <td class="cancel">cancel</td>
1061        </tr>
1062        <tr>
1063          <th>mov</th>
1064          <td class="prefetch">p.fetch</td>
1065          <td class="fetch">fetch</td>
1066          <td class="decode">decode</td>
1067          <td class="read">read</td>
1068          <td class="write">write</td>
1069        </tr>
1070        <tr>
1071          <th>mul</th>
1072          <td class="empty" colspan="1"></td>
1073          <td class="prefetch">p.fetch</td>
1074          <td class="fetch">fetch</td>
1075          <td class="decode">decode</td>
1076          <td class="wait" colspan="2">wait</td>
1077          <td class="read">read</td>
1078          <td class="MUL">MUL</td>
1079          <td class="write">write</td>
1080        </tr>
1081        <tr>
1082          <th>dp4</th>
1083          <td class="empty" colspan="2"></td>
1084          <td class="prefetch">p.fetch</td>
1085          <td class="fetch">fetch</td>
1086          <td class="wait" colspan="2">wait</td>
1087          <td class="decode">decode</td>
1088          <td class="read">read</td>
1089          <td class="MUL">MUL</td>
1090          <td class="ADD">ADD</td>
1091          <td class="ADD">ADD</td>
1092          <td class="write">write</td>
1093          <td class="dummy"></td>
1094        </tr>
1095      </table>
1096
1097
1098
1099    </div>
1100
1101
1102    <h2>Timetable</h2>
1103    <div>
1104      <table class="timetable">
1105        <tr>
1106          <th></th>
1107          <th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th>
1108          <th>11</th><th>12</th><th>13</th><th>14</th><th>15</th><th>16</th><th>17</th><th>18</th><th>19</th><th>20</th>
1109<!--           <th>21</th><th>22</th><th>23</th><th>24</th><th>25</th><th>26</th><th>27</th><th>28</th><th>29</th><th>30</th> -->
1110        </tr>
1111        <tr>
1112          <th>test</th>
1113          <td class="empty" colspan="1"></td>
1114          <td class="prefetch" colspan="1">p.fetch</td>
1115          <td class="fetch" colspan="2">fetch</td>
1116          <td class="exec" colspan="1">exec</td>
1117          <td class="drop">drop</td>
1118          <td class="stall" colspan="1">STALL</td>
1119          <td class="read">read</td>
1120          <td class="wait" colspan="1">wait</td>
1121          <td class="write">write</td>
1122          <td class="cancel">cancel</td>
1123          <td class="flow">branch</td>
1124          <td class="flow">if</td>
1125          <td class="flow">call</td>
1126          <td class="flow">ret</td>
1127          <td class="flow">jump</td>
1128          <td class="flow">loop</td>
1129          <td class="flow">break</td>
1130          <td class="dummy" colspan="2"></td>
1131        </tr>
1132        <tr>
1133          <th>test</th>
1134          <td class="ADD">ADD</td>
1135          <td class="MUL">MUL</td>
1136          <td class="EXP" colspan="2">EXP</td>
1137          <td class="LOG" colspan="2">LOG</td>
1138          <td class="FLOOR">FLOOR</td>
1139          <td class="MAX">MAX</td>
1140          <td class="MIN">MIN</td>
1141          <td class="MOVA" colspan="4">mova</td>
1142          <td class="RCP" colspan="2">RCP / RSQ</td>
1143          <td class="CMP" colspan="2">CMP</td>
1144          <td class="NOP">NOP</td>
1145          <td class="LITP">LITP</td>
1146          <td class="dummy"></td>
1147        </tr>
1148
1149        <tr>
1150          <th>ifb</th>
1151          <td class="fetch" colspan="2">fetch</td>
1152          <td class="flow">branch</td>
1153        </tr>
1154        <tr>
1155          <th>...</th>
1156          <td class="empty" colspan="1"></td>
1157          <td class="fetch" colspan="2">fetch</td>
1158        </tr>
1159        <tr>
1160          <th>...</th>
1161          <td class="empty" colspan="2"></td>
1162          <td class="fetch" colspan="1">fetch</td>
1163        </tr>
1164        <tr>
1165          <th>...</th>
1166          <td class="empty" colspan="3"></td>
1167          <td class="fetch" colspan="2">fetch</td>
1168          <td class="exec" colspan="3">exec</td>
1169        </tr>
1170        <tr>
1171          <th>...</th>
1172          <td class="empty" colspan="4"></td>
1173          <td class="fetch" colspan="2">fetch</td>
1174          <td class="exec" colspan="2">exec</td>
1175        </tr>
1176
1177      </table>
1178
1179    </div>
1180
1181    <div>
1182      <br><br><br>
1183      <table class="timetable" style="width: 60px;">
1184        <tr>
1185          <td class="FLOOR">FLOOR</td>
1186        </tr>
1187      </table>
1188      <table class="timetable" style="width: 120px;">
1189        <tr>
1190          <td class="EXP">EXP</td>
1191        </tr>
1192      </table>
1193    </div>
1194
1195<hr><p>CONFIDENTIAL</p></body>
1196</html>