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

CSAPP 4.2 Logic design ant the Hardware Contrlop Language HCL

·484 words·3 mins
Jiho Kim
Author
Jiho Kim
๋‹ฌ๋ ค ๋˜ ๋‹ฌ๋ ค

๐Ÿ“ ์ƒ์„ธ ์ •๋ฆฌ
#

  • 4.2.0
    • ํ•˜๋“œ์›จ์–ด ์ƒ์—์„œ ์ „์ž ํšŒ๋กœ๋Š” ๋น„ํŠธ๋“ค ์ƒ์˜ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  / ์ƒ์ดํ•œ ์ข…๋ฅ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์š”์†Œ๋“ค์— ๋น„ํŠธ๋“ค์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
      • ๋…ผ๋ฆฌ๊ฐ’ 1์€ 1๋ณผํŠธ ๋‚ด์™ธ์˜ ๊ณ ์ „์••, 0์€ 0๋ณผํŠธ ๋‚ด์™ธ์˜ ์ €์ „์••์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
    • ๋””์ง€ํ„ธ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
      • ๋น„ํŠธ์— ๋Œ€ํ•œ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ์กฐํ•ฉ ๋กœ์ง
      • ๋น„ํŠธ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์š”์†Œ
      • ๋ฉ”๋ชจ๋ฆฌ ์š”์†Œ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ํด๋ก ์‹ ํ˜ธ
  • 4.2.1 Logic Gates
    • ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ์˜ ๊ธฐ๋ณธ ์ปดํ“จํŒ… ์š”์†Œ์ด๋‹ค.
      • bool๊ฐ’์— ๋Œ€ํ•œ and, or, not ์—ฐ์‚ฐ
    • && & / || | ์ฐจ์ด
      • && || ๋Š” ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž -> ๊ฒฐ๊ณผ๋Š” 0 or 1
      • & |๋Š” ๋น„ํŠธ์—ฐ์‚ฐ์ž -> ๊ฒฐ๊ณผ๋Š” ๊ฐ ๋น„ํŠธ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•œ ๊ฐ’
    • ๋…ผ๋ฆฌ๊ฒŒ์ดํŠธ๋Š” ํ•ญ์ƒ ํ™œ์„ฑํ™” ๋˜์–ด์žˆ๋‹ค.
      • ์ž…๋ ฅ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ž ์‹œํ›„์— ๊ทธ์—๋”ฐ๋ผ ์ถœ๋ ฅ์ด ์ˆ˜์ •๋  ๊ฒƒ
  • 4.2.2 Combinational circuits and HCL Boolean Ecpressions
    • ๋‹ค์ˆ˜์˜ ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ๋ฅผ ๋„คํŠธ์›Œํฌ๋กœ ์กฐ๋ฆฝํ•˜๋ฉด์„œ ์šฐ๋ฆฌ๋Š” ์กฐํ•ฉ ํšŒ๋กœ๋กœ ์•Œ๋ ค์ง„ ๊ณ„์‚ฐ ๋ธ”๋ก์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ด๋•Œ ๋ช‡๊ฐ€์ง€ ์ œํ•œ์ด ์žˆ๋Š”๋ฐ
      • ๋ชจ๋“  ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ์˜ ์ž…๋ ฅ์€ ๋‹ค์Œ ์„ธ๊ฐ€์ง€์ค‘ ์ •ํ™•ํžˆ ํ•˜๋‚˜์— ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•œ๋‹ค.
        • ์‹œ์Šคํ…œ ์ž…๋ ฅ(1์ฐจ ์ž…๋ ฅ)
        • ์ผ๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์š”์†Œ์˜ ์ถœ๋ ฅ
        • ์ผ๋ถ€ ๋…ผ๋ฆฌ๊ฒŒ์ดํŠธ์˜ ์ถœ๋ ฅ
      • ๋‘˜ ์ด์ƒ์˜ ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ์˜ ์ถœ๋ ฅ์€ ํ•จ๊ป˜ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์—†๋‹ค.
        • (?wire ๋ฅผ ์ƒ์ดํ•œ ์ „์••์„ ํ–ฅํ•ด ๊ตฌ๋™์‹œ์ผœ์„œ ํšŒ๋กœ ์˜ค๋™์ž‘์„ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.)
          • ์•„ํ•˜, ์ด๊ฒŒ ๋ฌด์Šจ์†Œ๋ฆฐ๊ฐ€ ํ–ˆ๋Š”๋ฐ ๋‘ ์ถœ๋ ฅ๋ถ€๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ํ•˜๋‚˜๊ฐ€ 1, ํ•˜๋‚˜๊ฐ€ 0์ด์—ˆ๋‹ค๋ฉด ์—ฐ๊ฒฐ๋ ๋•Œ ์ข€ ๊ณค๋ž€ํ•ด์ง„๋‹ค! ์ „์›๊ณผ ์ ‘์ง€๊ฐ€ ๋งŒ๋‚˜๋Š”๊ฒƒ๋„ ์ด์Šˆ๊ณ .
      • ๋„คํŠธ์›Œํฌ๋Š” ๋น„์ˆœํ™˜์ ์ด์–ด์•ผ ํ•œ๋‹ค.
        • ๋ฃจํ”„๋Š” ๋„คํŠธ์›Œํฌ์— ์˜ํ•ด ๊ณ„์‚ฐ๋œ ํ•จ์ˆ˜์— ๋ชจํ˜ธ์„ฑ์„ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 4.2.3 Word-Level Combinational Circuits and HCL Integer Expressions
    • ํฐ ๋…ผ๋ฆฌ ๊ฒŒ์ดํŠธ ๋„คํŠธ์›Œํฌ๋ฅผ ์กฐ๋ฆฝํ•จ์œผ๋กœ์จ ์šฐ๋ฆฌ๋Š” ํ›จ์”ฌ ๋” ๋ณต์žกํ•œ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
      • word ๋‹จ์œ„๋กœ ์—ฐ์‚ฐํ•ด์•ผ์ง€!
      • ์ •์ˆ˜, ์ฃผ์†Œ, instuction ์ฝ”๋“œ, ๋ ˆ์ง€์Šคํ„ฐ ์‹๋ณ„์ž ๋“ฑ 4~64๋น„ํŠธ ๋ฒ”์œ„์˜ ์ˆ˜๋งŽ์€ word๊ฐ€ ์žˆ์„ ๊ฒƒ
    • ์•ž์œผ๋กœ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ๋•Œ ์ ์„ ์€ ๋น„ํŠธ๋‹จ์œ„, ์ค‘๊ฐ„ํฌ๊ธฐ ์‹ค์„ ์€ word๋‹จ์œ„
  • 4.2.4 Set MemberShip
    • HCL์—์„œ or์—ฐ์‚ฐ์ด ๋ถ™์–ด์žˆ๋Š” ์ฝ”๋“œ๋Š” in ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • 4.2.5 Memory and Clocking
    • ์กฐํ•ฉํšŒ๋กœ๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ์–ด๋–ค ์ •๋ณด๋„ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ํ•˜์ง€๋งŒ ์ˆœ์ฐจํšŒ๋กœ๊ฐ€ ํ•„์š”ํ•ด์ง€๋ฉด, ์šฐ๋ฆฌ๋Š” ๋น„ํŠธ๋กœ ํ‘œํ˜„๋˜๋Š” ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์žฅ์น˜๋ฅผ ๋„์ž…ํ•ด์•ผ ํ•œ๋‹ค.
      • ์ด๋Š” ์ƒˆ๋กœ์šด ๊ฐ’์ด ์žฅ์น˜์— ๋กœ๋“œ๋  ๋•Œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ฃผ๊ธฐ์ ์ธ ์‹ ํ˜ธ์ธ ๋‹จ์ผ ํด๋Ÿญ์— ์˜ํ•ด ์ œ์–ด๋œ๋‹ค.
      • ํด๋ก ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๊ฐœ๋ณ„ ๋น„ํŠธ / ์›Œ๋“œ๋ฅผ ์ €์žฅํ•จ
      • ๋žœ๋ค ์•ก์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฝ๊ฑฐ๋‚˜ ์“ธ ๋‹จ์–ด๋ฅผ ์„ ํƒํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์›Œ๋“œ๋ฅผ ์ €์žฅํ•จ
        • ๋Œ€ํ‘œ์ ์œผ๋กœ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ, ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ ๋“ฑ
      • ์•„๋ฌดํŠผ ์ด ๋‘๊ฐ€์ง€ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ๊ฐ๊ฐ ํ•˜๋“œ์›จ์–ด ๋ ˆ์ง€์Šคํ„ฐ / ํ”„๋กœ๊ทธ๋žจ ๋ ˆ์ง€์Šคํ„ฐ๋ผ๊ณ  ํ•˜์ž.
    • ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ์€ ๋‚ด๋ถ€ ์ €์žฅ์žฅ์น˜๋ฅผ ๊ฐ–๊ธฐ์— ์กฐํ•ฉํšŒ๋กœ๊ฐ€ ์•„๋‹ˆ๋‹ค.
    • ์•„ํ•˜, ์ด๊ฒŒ ์ข…ํ•ฉ์ ์œผ๋กœ ๋ฌด์Šจ๋ง์ธ์ง€ ์ฒœ์ฒœํžˆ ์ฝ์œผ๋ฉด์„œ ์ดํ•ดํ•ด๋ณด์ž.
      • ๊ฒฐ๊ตญ ๊ฐ’์„ ์ €์žฅํ•  ์ผ์€ ๋ถ„๋ช…ํžˆ ์ƒ๊ธด๋‹ค. ์ „์— ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ™œ์šฉํ•˜๋˜๊ฐ€ ํ•ด์•ผํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ.
      • ์ž˜ ์•Œ๋“ฏ์ด ๊ทธ๊ฑธ ์ €์žฅํ•˜๋Š” ๋ถ€๋ถ„์€ CPU์˜ ๋ ˆ์ง€์Šคํ„ฐ๋‹ค. CPU์— ๋‹ฌ๋ ค์žˆ๋Š” ๊ทธ ์นœ๊ตฌ๋ฅผ ํ•˜๋“œ์›จ์–ด ๋ ˆ์ง€์Šคํ„ฐ๋ผ๊ณ  ๋ถ€๋ฅด์ž.
      • ๊ทธ๋Ÿฌ๋ฉด ์ €์žฅ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”๊ฐ€? CPU์—์„œ๋Š” ์•ˆ์—์„œ D-ํ”Œ๋ฆฝํ”Œ๋ž์ด๋ผ๋Š”๊ฑธ ์ด์šฉํ•ด์„œ, ์•ˆ์— ์ „๋ฅ˜๋ฅผ ๊ฐ€๋‘๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
        • ๊ฐ€๋‘๋Š” ํƒ€์ด๋ฐ์€ ํด๋ก ์‹ ํ˜ธ (0-1 ์ง„๋™์‹ ํ˜ธ)๊ฐ€ ์ผœ์ง€๋Š” ๊ทธ ํƒ€์ด๋ฐ์ด๋‹ค.
      • X86-64์—๋Š” ์ด 16๊ฐœ์˜ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ, ํ•˜๋“œ์›จ์–ด ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์ด 16๊ฐœ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ๋“ค์— ๋Œ€ํ•œ ๋ฌถ์Œ์„ ๋ ˆ์ง€์Šคํ„ฐ ํŒŒ์ผ์ด๋ผ๊ณ  ํ•œ๋‹ค.
        • ์™œ ๋ฌถ์–ด์„œ ๋ณด๊ด€ํ•˜๋Š”๊ฐ€? ๊ทธ๊ฑด 16๊ฐœ์— ๋Œ€ํ•ด ๋ชจ๋“  ALU์— ๋‹ค๋Š”๊ฒŒ ์—๋ฐ”๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์œ„์— MUX, ์„ ํƒ๊ธฐ๋งˆ๋ƒฅ ์ด ๋ ˆ์ง€์Šคํ„ฐ์—์„œ๋„ ๋น„ํŠธ๋งˆ์Šคํ‚น ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ ์—ฐ์‚ฐํ•ด์„œ ๊ฐ’์„ ์–ป์–ด๋‚ด๋Š”๊ฒŒ ํšŒ๋กœ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ํ›จ์”ฌ ๋” ์‰ฝ๋‹ค.
      • ๋”ฐ๋ผ์„œ ๊ทธ ๋ณด๋“œ ์œ„์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ•˜๋“œ์›จ์–ด ๋ ˆ์ง€์Šคํ„ฐ, ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” %rax๊ฐ™์€๊ฑธ ํ”„๋กœ๊ทธ๋žจ ๋ ˆ์ง€์Šคํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค.

โ”์งˆ๋ฌธ ์‚ฌํ•ญ
#

๋ฃจํ”„๋Š” ๋„คํŠธ์›Œํฌ์— ์˜ํ•ด ๊ณ„์‚ฐ๋œ ํ•จ์ˆ˜์— ๋ชจํ˜ธ์„ฑ์„ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์™œ?

AND / OR ๊ฐ™์€ ํšŒ๋กœ๋“ค๋กœ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ค๋ฉด ์ „์••์ด ์ง„๋™ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ค‘๊ฐ„์—์„œ ๋ฉˆ์ถฐ๋ฒ„๋ฆฐ๋‹ค!

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ
#