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>