Data Flow: Detecting and Resolving Data Hazards
A pipeline can fail to achieve its maximum speedup if there are discontinuities in the supply of instructions or data. Discontinuities in the flow of instructions have been covered in the preceding chapter; in this chapter, we shall discuss the problem of discontinuities in the flow of data as well as corresponding solutions. The data-flow discontinuities arise mainly from two sources: one is a mismatch between the rate at which the pipeline requests data and the rate at which the data is delivered to the pipeline; the other is data hazards (or data dependences) that occur between instructions in the pipeline when one instruction cannot proceed because its progress depends on that of another instruction. The basic problem of mismatching rates is largely solved by the use of appropriate high-speed intermediate storage (cache, registers, etc.) and other techniques discussed in Chapter 3 and will not be considered further. This chapter is therefore devoted to just the hazards and related issues.
KeywordsFunctional Unit Mapping Table Physical Register Register File Cache Line
Unable to display preview. Download preview PDF.
- 3.AMD 1987. Am29000 Streamlined Instruction Processor: User’s Manual. Advanced Micro Devices, Sunnyvale, California, USA.Google Scholar
- 4.AMD. 1997. AMD-K6 MMX Processor. Advanced Micro Devices, Sunnyvale, California.Google Scholar
- 8.Chen, T.C. 1964. The overlap design of the IBM System/360 Model 92 central processing unit. In: Proceedings, AFIPS Fall Joint Computer Conference, vol. 26, part II, pp 73–80.Google Scholar
- 13.Edmondson, J.H. et al. 1995. Internal organization of the Alpha 21164, a 300MHz 64-bit quad-issue CMOS RISC microprocessor. Digital Technical Journal, 7(1):119–135.Google Scholar
- 19.MIPS. 1996. MIPS R10000 Microprocessor User’s Manual. MIPS Technologies, Mt. View, California.Google Scholar
- 20.Morris, D. and R.N. Ibbett. 1979. The MU5 Computer System. Springer-Verlag, New York.Google Scholar
- 21.Omondi, A. R. 1994. Ideas for the design of multithreaded pipelines. In: R.H. Halstead, G.R. Gao, R.A. Iannucci, and B. Smith, Editors, Multithreaded Computer Architecture: A Summary of the State of the Art. Kluwer Academic Publishers, Boston.Google Scholar
- 22.Popescu, V. et al. 1991. The Metaflow architecture. IEEE Micro, June: 10–13, 63–73.Google Scholar
- 25.Smith, J.E. 1989. Dynamic instruction scheduling and the Astronautics ZS-1. IEEE Computer, July:21–35Google Scholar
- 28.Thornton, J.E. 1970. Design of a Computer: The Control Data 6600. Scott, Foresman, and Co., Illinois, USA.Google Scholar
- 31.Trioani, M. et al. 1985. The VAX 8600 I Box: A pipelined implementation of the VAX architecture. Digital Technical Journal, 1:24–42.Google Scholar
- 32.Weiss, S. and J.E. Smith. 1984. Instruction issue logic in pipelined supercomputers. IEEE Transactions on Computers, vol. C-33, no. 9 (Sep. 1984), ppGoogle Scholar