Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesAligning Instructions for Multiple Dispatch


September 1994 / Features / Aligning Instructions for Multiple Dispatch

The R8000's instruction buffer is a FIFO (first-in/first-out) queue in which each entry is a quadword (i.e., 128 bits) containing four instructions read from the instruction cache. The last entry in this queue is made visible via a set of four 32-bit registers called the on-deck registers, which feed another set of four dispatch registers. The latter are equivalent to the instruction register of a conventional single-issue microprocessor and connect to the decode logic and the register file. The figure at right shows four cycles of the buffer operation with individual instructions represented by letters of the alphabet. The cycles are explained below.

Cycle 1: Instruction C depends on the result of A, so the dispatch logic decides that only instructions A and B can be issued in pa rallel (as D must not be issued out of order).

Cycle 2: A and B are dispatched for execution, E and F move from the on-deck registers to replace them, and the program counter points to C.

Cycle 3: C, D, and E are dispatched in parallel and are replaced by G and H (from the on-deck registers) and I, which bypasses the on-deck registers. The emptying of the on-deck registers triggers a buffer advance on the next cycle.

Cycle 4: The buffer advances one line and reads four more instructions from the cache. F and G are dispatched.

The overall effect of this mechanism is to provide a continuous stream of aligned instructions for execution. Meanwhile, the dispatch-decision logic has to manipulate only the four dispatch registers and is not burdened with the whole instruction-fetch pipeline.


Figure: Unaligned Dispatching

Up to the Features section contentsGo to previous article: The Last BastionGo to next article: Data over CellularSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network