Skip to main content
  1. Posts/
  2. Today I Learned/

CSAPP 4.4 General Principles of Pipelining

·316 words·2 mins
Jiho Kim
Author
Jiho Kim
달렀 또 달렀

πŸ“ 상세 정리
#

4.4.0 Intro
#

  • νŒŒμ΄ν”„λΌμΈμ€ μ›¬λ§Œν•œ μ‚¬λžŒμ—κ²Œ μ΅μˆ™ν•  것이닀.
    • κΈ‰μ‹μ†ŒλŠ” μƒλŸ¬λ“œ / μš”λ¦¬ / λ””μ €νŠΈ / μŒλ£Œλ“±μ„ λ‚˜λˆ μ„œ μ œκ³΅ν•˜κ³ 
    • μ„Έμ°¨μž₯도 λ¬Όκ³Ό λΉ„λˆ„λ₯Ό λΆ„μ‚¬ν•˜κ³  / 닦고 / μ™μŠ€λ₯Ό λ°”λ₯΄κ³  / κ±΄μ‘°ν•˜κ³ ..
    • μ—¬λŸ¬ 고객이 λ™μ‹œμ— μ‹œμŠ€ν…œμ„ ν†΅κ³Όν•˜λ„λ‘ ν—ˆμš©ν•˜λŠ” 것.
  • νŒŒμ΄ν”„λΌμ΄λ‹μ˜ 핡심 νŠΉμ§•μ€ μ‹œμŠ€ν…œμ˜ μ²˜λ¦¬λŸ‰μ„ μ¦κ°€μ‹œν‚¨λ‹€λŠ” 것
    • ν•˜μ§€λ§Œ κ°œλ³„ 고객에 λŒ€ν•œ μ„œλΉ„μŠ€μ‹œκ°„ (λŒ€κΈ°μ‹œκ°„)은 μ•½κ°„ 증가될 μˆ˜λ„ μžˆλ‹€.

4.4.1 Computational Pipelines
#

  • μ»΄ν“¨ν„°λ‘œ 였면, 고객은 λͺ…령어이고, 각 λ‹¨κ³„λŠ” λͺ…λ Ήμ–΄ μ‹€ν–‰μ˜ 일뢀 뢀뢄이닀.
  • ν˜„λŒ€ 논리 μ„€κ³„μ—μ„œλŠ” 회둜 지연을 ν”Όμ½”μ΄ˆ ($ps, 10^{-12}$초) λ‹¨μœ„λ‘œ μΈ‘μ •ν•œλ‹€.
  • μ²˜λ¦¬λŸ‰μ€ μ΄ˆλ‹Ή κΈ°κ°€ λͺ…λ Ήμ–΄ λ‹¨μœ„λ‘œ ν‘œν˜„λœλ‹€.
  • λͺ…λ Ήμ–΄λ₯Ό λκΉŒμ§€ μˆ˜ν–‰ν•˜λŠ”λ° ν•„μš”ν•œ 총 μ‹œκ°„μ„ μ§€μ—°(latency)라고 ν•˜κ³ , μ΄λŠ” μ²˜λ¦¬λŸ‰μ˜ μ—­μˆ˜μ΄λ‹€.

4.4.2 A Detailed Look at Pipleline Operation
#

  • 쀑간에 λ ˆμ§€μŠ€ν„°μΈ΅μ„ λ‘¬μ„œ, μž…λ ₯κ³Ό 좜λ ₯을 μ λ‹Ήνžˆ μ €μž₯ν•΄μ„œ νŒŒμ΄ν”„λΌμ΄λ‹μ„ ν•  수 μžˆκ² λ‹€.
  • 클럭이 λŠλ €μ§€λŠ”κ±΄ λ¬Έμ œκ°€ μ—†κ² μ§€λ§Œ,λ„ˆλ¬΄ 빨라지면 λ ˆμ§€μŠ€ν„° μž…λ ₯값듀이 μœ νš¨ν•˜μ§€ μ•Šμ•„μ§ˆ 수 μžˆλ‹€.

4.4.3 Limitations of Pipelining
#

  • ν•˜μ§€λ§Œ 3λ‹¨κ³„λ‘œ μͺΌκ° λ‹€κ³  3λ°° λΉ¨λΌμ§€μ§€λŠ” μ•ŠλŠ”λ‹€, λΆˆν–‰νžˆλ„.
  • Nonuniform Partitioning
    • μ•„λ¬΄λž˜λ„, μ„Έ λ‹¨κ³„λ‘œ μͺΌκ°°μ„λ•Œ 각 단계λ₯Ό 1/3씩은 λͺ»λ§žμΆ”κ³ , 300μ΄μ—ˆλ˜κ²Œ 50, 150μ •λ„λ‘œ μͺΌκ°œμ§€κ² μ§€.
    • 근데 그러면 ν΄λŸ­μ„ μž‘λ™ν•  수 μžˆλŠ” μ†λ„λŠ” κ°€μž₯ 느린 단계에 λ§žμΆ°μ§„λ‹€.
      • 300이 50 / 100 / 150으둜 μͺΌκ°œμ§„λ‹€λ©΄ 150에 λ§žμΆ°μ§€κ³ , 쀑간 λ ˆμ§€μŠ€ν„° μ €μž₯κΉŒμ§€ μƒκ°ν•˜λ©΄ 170ps정도밖에 μ„±λŠ₯ κ°œμ„ μ΄ μ•ˆμΌμ–΄λ‚œλ‹€.
  • Diminishing Returns of Deep Pipelining
    • 그러면 많이 μͺΌκ°œλ©΄ μ’‹μ€κ±ΈκΉŒ?
      • 그러면, λ ˆμ§€μŠ€ν„° μ €μž₯ μ˜€λ²„ν—€λ“œκ°€ 컀진닀.
    • 잘 μͺΌκ°œμ„œ 300psλ₯Ό 50ps 6λ‹¨κ³„λ‘œ μͺΌκ°°λ‹€κ³  μƒκ°ν•΄λ³΄μž. μ΄λ•Œ λ ˆμ§€μŠ€ν„°μ— μ˜ν•΄ 50 + 20 = 70psμ •λ„λ‘œ λœλ‹€. 전체 μ§€μ—°μ—μ„œ 28%λ‚˜ λ ˆμ§€μŠ€ν„° 지연이 μ°¨μ§€ν•œλ‹€.
    • ν˜„λŒ€ ν”„λ‘œμ„Έμ„œμ—μ„œλŠ” κ·Έλž˜λ„ 클럭 속도λ₯Ό κ·ΉλŒ€ν™”ν•˜κΈ° μœ„ν•΄ 15단계 μ΄μƒμ˜ κΉŠμ€ νŒŒμ΄ν”„λΌμΈμ„ μ‚¬μš©ν•˜κΈ΄ ν•œλ‹€.

4.4.4 Pipelining a System with Feedback
#

  • μš°λ¦¬λŠ” μ§€κΈˆκΉŒμ§€ λͺ¨λ“  λͺ…λ Ήμ–΄κ°€ 독립적이라고 κ°€μ •ν–ˆλ‹€.
    • ν•˜μ§€λ§Œ μ—°μ†λœ λͺ…λ Ήμ–΄ 간에 쒅속성이 μ‘΄μž¬ν•  수 μžˆλ‹€.
  • ν•˜μ§€λ§Œ νŒŒμ΄ν”„λΌμ΄λ‹μ„ μ§„ν–‰ν•˜λ©΄, μ•žμ˜ κ²°κ³Όκ°€ μ—…λ°μ΄νŠΈ λ˜μ§€ μ•Šμ•˜λŠ”λ° λ’€μ—μ„œ μ“°λ €κ³  ν•˜λŠ” 상황이 λ°œμƒν•  수 μžˆλ‹€.
    • 이런 ν”Όλ“œλ°± 효과λ₯Ό 적절히 μ²˜λ¦¬ν•΄μ„œ, μ‹œμŠ€ν…œ λ™μž‘μ΄ λ³€κ²½λ˜μ§€ μ•Šλ„λ‘ 쑰심해야할 것이닀.

β”μ§ˆλ¬Έ 사항
#

그러면 λž¨μ΄λ‚˜ CPU μ˜€λ²„ν΄λŸ­μ΄ μž˜λœλ‹€ / μ•ˆλœλ‹€λΌλŠ” 말은, μ˜€λ²„ν΄λŸ­μ„ ν–ˆμ„λ•Œ, μ–Όλ§ˆλ‚˜ 뻑이 μ•ˆλ‚˜λƒ λΌλŠ”κ±΄κ°€? 이둠상 ν΄λŸ­μ„ 걍 λ‘λ°°λ‘œ λŠ˜λ €λ²„λ¦¬λ©΄, 연산이 λœλλ‚¬λŠ”λ° 클럭이 νŠ€μ–΄λ²„λ¦¬λ©΄ 결과값이 μ΄μƒν•΄μ§ˆν…Œλ‹ˆκΉŒ. λŒ€μΆ© μ•ˆμ „ν•œμ„ κΉŒμ§€ ν΄λŸ­μ„ μ˜¬λ¦¬λŠ”κ±΄κ°€?

λŒ€μΆ© λ§žλ‹€.

πŸ”— μ°Έκ³  자료
#