deer-develop / study

2 stars 0 forks source link

오랜만에 복습한 숫자표기법 #9

Open myeongjae-kim opened 5 months ago

myeongjae-kim commented 5 months ago

Word Size의 정의

“Word size is a common hardware term used for specifying the number of bits that computers use for representing a basic chunk of information—in this case, integer values. Typically, 8-, 16-, 32-, or 64-bit registers are used for representing integers.1”

2의 보수법 말고는 뭐가 있지?

https://en.wikipedia.org/wiki/Signed_number_representations

0과 -0은 다르다 ㅋㅋㅋ

부동소수점 표기는 어떻게?

IEEE 754

https://en.wikipedia.org/wiki/IEEE_754

2의 보수는 아름답지만 IEEE 754는 아름다움과는 멀다. 그래도 실제로 쓰는데 문제는 없음.

hyewoncc commented 5 months ago

명재: CPU의 제약을 알아야 이해할 수 있는 것들이 가끔 나오는데... 그 근원이 word size 다. 계산 한 번을 word size 안에 할 수 있으면 CPU 클럭 한 번으로 되는데, 그 걸 넘어가면 두 번 해야 해서, 저수준에서 효율성이 떨어짐.
다른 보수법 sign-magnitude(맨 앞 비트를 부호처럼 사용하기), one's complement(-0을 1111로 함) 교수님이 2의 보수법이 가장 아름답다고 함. 하드웨어도 이런 표기법들이 나왔다가, 진화하면서 수렴함.

덕수: 클럭이 뭔가요 명재: 진동수가 전기로 계산할 수 있는 횟수인데, 계산 한 번을 클럭이라고 부른다. 덕수: 게이트는 진리표에 따라 1, 0을 넣으면 1이 나오는 기능인데, 클럭은 이 인풋을 바꿔낄 수 있는 횟수이다. 예를 들어, (1,0), (0,0), (1,1)... 등을 넣을 수 있는 기회. 진동수가 x라고 한다면, x회의 게이트 연산을 반복할 수 있다는 의미. 영인: 칩이 같아도 여러번 쏘면 성능이 달라진다는 얘긴데, 어디서 차이가 생기는 건지? 덕수: 저항에 따라 달라진다. 똑같은 전력으로 얼마나 할 수 있냐에 따라서 결정된다. 명재: 팬티엄 시절에 4기가 헤르츠 정도는 봤는데, 그 위는 못 본게 발열 문제다. 진동수를 높이려면 트렌지스터를 작게 만들어서 좁은 공간에 많이 넣어야 하는데... 덕수: 전기선이 길 수록 저항이 커지기 때문에 트렌지스터는 작게 만들어야 함.

덕수: 같은 구성을 갖고 있을 때, 칩에서 물리적인 배치를 가깝게 하면 저항이 커서 발열이 커진다. 전기선 길이와 다른 얘기. 영인: 트랜지스터는 작으면 작을 수록 좋은 건가? 덕수: 너무 작으면 전기선끼리 합선과 비슷한 현상이 일어남. 그걸 방지하는 게 기술!

명재: (명진의 M1 질문에 대해) M1은 CPU 안에 다른 곳에 있던 여러가지 특수 목적 칩을 다 모아서 오케스트레이션을 잘 한 것. 트렌지스터랑 다른 얘기. 영인: 모바일 기기는 원래 그런 방식이 아닌지? 명재: 그러게여 영인: 애플이 옛날에 칩을 계속 새로 발표했는데, 그걸 모아둔 게 M1 이라는 얘기를 들었다.

명재: 자스의 이상한 숫자(-infinite, type of not a number가 number인 등...)는 사실 IEEE 754의 문제임.