10진법 시피유..

chadr의 이미지

http://www.edaily.co.kr/news/world/newsRead.asp?sub_cd=DD41&newsid=01804006580011936&clkcode=00203&DirCode=0050503&curtype=read

질문글입니다만 적당한 카테고리가 안보여서 여기다가 올려봅니다..

IBM에서 10진수 cpu를 만들었다는 소리가 있더군요..
기사 내용을 보면 이 cpu를 이용하면 더 성능이 높아진다거나..
다른 블로그에서 나온 의견을 보면 10진수를 이용하기 떄문에 2진수<->10진수 변환이 없어져서 뭐 성능이 올라간다든가..

그런말이 있던데 제가 생각하기로는 솔직히 이해가 안갑니다.
단지 숫자 계산시 진법이 달라졌다 뿐이고.. 오히려 결국은 디지털(2진수)인데 이걸 억지로 10진수에 맞출려고 하면 더 성능이 떨어지는거 아닌가요?
과연 현재 2진수로 계산이되는 시피유를 10진수로 계산되도록 만들어진 시피유가 성능이 더 높은지 이론적인면이 궁금합니다.

warpdory의 이미지

디지틀이라고 해서 꼭 바이너리(2진법)일 필요는 없습니다.

여러가지 방법은 있습니다만 ...
CPU 내부에서 동작전압의 전위차로 10진법을 표현할 수도 있죠.
단순히 전기흐른다 -> 1, 안흐른다 -> 0 이게 아니라...
0~0.3 볼트 ; 0
0.35 ~ 0.8 볼트 ; 1
0.85 ~ 1.6 볼트 ; 2
1.65 ~ 2.4 볼트 ; 3
....

이런 식으로 처리할 수 있도록 되어서 안정적으로만 돌아간다면 .. 2진법으로 10 이라는 숫자를 표현하기 위해서는 최소한 3개의 신호(2진법으로 110 이 10 진법의 10에 해당되죠.)가 지나가야 하겠지만, 10진법에서는 최소한 2개의 신호(10 .. )이면 되니깐 .. 한자리가 줄어들고, 자릿수가 높아질수록 이 차이는 훨씬 더 커지게 됩니다. 즉, 한번에 처리할 수 있는 용량이 증가한다고 볼 수 있는 거죠. 다른 말로 하면 효율이 좋아지는 거구 ... 직접적으로 사용자들에게는 속도가 빨라지는 걸로 느껴지게 됩니다.

물론, 저렇게 볼트 나눠가며 처리하는 방식만 있는 게 아니라, 저항값을 변화시킨다든가, 전류를 바꾼다든가, 등등의 여러가지 방식이 있고, 다 나름대로 특허들이 나와 있더군요. - 제가 예전에 특허조사해보기로는 1990년대 초중반에 IBM, 인텔, Ti 등에서 특허를 내 놨더군요. 이제 대충 10여년 지나서 제품화되기 시작하는 것 같군요.

---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.
http://akpil.egloos.com


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

chadr의 이미지

아하.. 그렇군요.. 잘 이해가 되었습니다. 답변 감사합니다.:)
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

superwtk의 이미지

아무래도 소형화에서 2진수 CPU 보다 불리하지 않을까요 ㅎㅎ
이쪽은 아무래도 잘 몰라서-_-a

--------------------------------------------------------------------------------
http://blog.superwtk.com

warpdory의 이미지

불리할 것은 없습니다.
회로 면적이 약 20% 정도 더 커지는 걸로 나온 보고서를 본 적은 있습니다.

---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.
http://akpil.egloos.com


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

Necromancer의 이미지

가능하죠. 이 기법은 이미 QAM등으로 많이 쓰이고 있고요.

하지만 10레벨로 할 경우 ALU가 만만치 않겠습니다.
특히 곱셈과 나눗셈은 죽음이 될 거 같네요.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

ㅡ,.ㅡ;;의 이미지

옛날에 제가 누군가에게 한말이 생각나는군요..ㅡ,.ㅡ;

아마도 컴퓨터란것을 처음접했을때.. 였었는데... 컴은2진법이다.. 0101010....

그래서 누군가에게 나는 3진법을 사용하는컴을 만들고싶다.. 01 -1 ....

그러나 이내 안좋다는결론을 내렸죠... 2의8승 보다 3의 8승이 표현할수 있는숫자는 매우 풍부해지더라도...

결과적으로 데이터를 저장하는용량에는 크게 차이가 나지 않을것이라는 결론이었죠..

그리고 전압차를 이용하는경우 전압차를 구분하기위해 더고가?의 부품이 필요하게되죠..

또한 정확성이 떨어질수도 있죠. 사실이게 제일큰문제라고 생각합니다.


----------------------------------------------------------------------------

전웅의 이미지

왜 안 좋다는 결론을 내리셨어요?

Knuth 도 곧 있으면 flip-flap-flop 을 기대해 볼 수 있지 않겠느냐는
이야기를 했는데요.. (책 읽은지 오래라 정확한 표현은 긴가민가...)

radix 와 그 표현에 필요한 width 를 바탕으로 효율성을 따졌을 때
실질적으로 가장 효율적인 시스템은 3진법을 사용하는 것입니다 - 가장
효율적인 진법은 e 를 사용하는 것이지만 이에 가장 가까운 정수는 3 이
되겠지요.

관련 내용은 "Third Base" 나 "Trinary/Ternary Computer System" 등으로
검색하시면 찾으실 수 있습니다.

--
Jun, Woong (woong at icu.ac.kr)
Web: http://www.woong.org

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

ㅡ,.ㅡ;;의 이미지

어느정도 한50%정도의 성능향상이 있을것으로 기대되나..
그때는 현제까지의 모든체계를 뒤업는 노력에비해 하드웨어의 발전속도를볼때 노력에비해서 결과가 작다고 생각했었죠..


----------------------------------------------------------------------------

jachin의 이미지

조금은 의심이 들면서 CPU 내부 구조가 10진법 체계로 이뤄졌다고

생각하지는 않습니다. 무엇보다 그렇게 만들면 구조가 너무 조악해지고,

기존의 2진법 기반 프로그램과 인프라와는 별개로 움직이는 분야에만

쓸 수 있을 것 같습니다. 슈퍼컴퓨팅이나 보안관련 시스템과 관련한...
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

사랑천사의 이미지

이전에 친구 녀석과 새로운 CPU와 OS의 개발, 기타 하드웨어의 설계에 대해 이야기 하던 적이 있었습니다. 그 때 생각 했던 것이 10진수를 바로 처리할 수 있는 CPU였고 기존의 2진법 체제를 바탕으로 하는 CPU들을 대상으로 작성된 소프트웨어들을 간단한 변환 시스템을 만들어 바이너리 레벨에서 (물론 바이너리가 아니게 될 수도...) 포팅을 해서 돌아 가게 만들 수 있지 않은가 하는 이야기를 했습니다. 물론 저런 성능상의 이점이나 자세한 기술을 논한 것은 아니고 논리 회로 어저고 하면서 이야기를 했었습니다. 근대 그게 가능한 건지도 정확히 따져 본 적이 없고 지금 까지도 그냥 한번 '해' 보겠다... 라고 생각 하는 것들 중의 하나죠. 근대 그런 것들이 이미 다 있었군요. 만들 필요가 없을려나 후후
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

서지훈의 이미지

현재로 볼 때 3진이든 10진이든 만든 후 같은 조건(돈, 발열등)에서 몇 십배 이상의 월등한 성능이 아니라면 학문적 가치는 있을지 모르나 공학적으로는 별다른 메리트가 없는 것입니다.
이 보단 어떻게 더 발열을 적게 할지를 연구하는게 좀 더 현실적이고 돈이 될 가능성이 높겠죠.

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <beer.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

전웅의 이미지

1950년대 소비에트 연방(ㅋㅋ 오랜만에 써보는 단어군요)에서 실제로
개발되어 동일한 사양의 binary computer 보다 월등한 성능을 보였지만
다른 이유로 역사에서 사라진 ternary computer system 을 "공학적으로"
메리트가 없다고 할 수 있을지 의문입니다.

Knuth 책에도 나오지만, ternary logic 은 "이론적으로도" 매우 (흰옷
입으신 분 말씀마냥) "엘레강스"하고 "공학적으로도" 성능면에서 binary
logic 보다 뛰어납니다.

다만, 땀흘리는 이모티콘님(--;) 말씀대로 "역사적으로" 기반을 제대로
갖추지 못해 선택되지 못하고 있을 뿐이지요.

--
Jun, Woong (woong at icu.ac.kr)
Web: http://www.woong.org

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

cppig1995의 이미지

이 버그가 아직 리포트되지 않았다는 것이 신기할 따름입니다.

이런 식으로 처리할 수 있도록 되어서 안정적으로만 돌아간다면 .. 2진법으로 10 이라는 숫자를 표현하기 위해서는 최소한 3개의 신호(2진법으로 110 이 10 진법의 10에 해당되죠.)가 지나가야 하겠지만,
|
v
이런 식으로 처리할 수 있도록 되어서 안정적으로만 돌아간다면 .. 2진법으로 10(10) 이라는 숫자를 표현하기 위해서는 최소한 4개의 신호(2진법으로 1010 이 10 진법의 10에 해당되죠.)가 지나가야 하겠지만,

가 아닐까요?

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

1010의 이미지

6

sDH8988L의 이미지

Power6는 Default로는 2진수 연산이고요, 10진수 모드는 따로 있습니다...

위에 댓글 중에 전압의 차이로 10진수를 인식하게 하는 방법에 대해서 말씀하셨는데요, 현실적으로 별 도움이 되지 않는 방법입니다... Power 6는 차후 5GHz까지 속도가 올라가는데요. 이 정도까지의 동작 속도라면 Vdd가 1V 정도 밖에 되지 않습니다. 이 경우에 그 낮은 전압을 차등을 두어 값을 구별하는 건 좋은 방법이 아니고 Error율을 상당히 높히게 되는 방법입니다...

일단, 10진수 연산과 2진수 연산에서 문제가 되는 건 소수점이 나타날 때인데요, IBM에서 반드시 표준을 준수하여 10진수를 구현했다고 믿을 필요는 없지 않을까요?

가령 38을 표현할 때, 한 자리씩 끊어서 0011 1000 이런 식으로 표헌하고 연산하면 변환에 따른 문제가 발생하지 않습니다.
(0 - 9까지 표현해야 하기 때문에 4개의 2진수가 필요합니다.)

물론, 상당히 비효율적이고 속도가 느립니다만, IBM의 Power6 관계자도 10진수 연산은 속도가 느리다고 말한 바 있습니다...

그래서 제 생각에는 Power6는 Hardware적으로는 기존의 2진수이고 그 2진수 값을 해석하고 연산하는 방법을 달리한 게 아닌가 싶습니다...

sDH8988L의 이미지

그리고 이건 여담인데요...

디지털이라고 해서 신호가 깔끔한 게 절대 아닙니다...

다들 생각하시는 바처럼 디지털 신호는 계단 형식으로 파형이 진행될 거라고 생각하시는 분들이 많은신데, 그건 회로에 비해서 동작 주파수가 상당히 낮을 경우에나 해당하는 얘기고요, 실제로 CPU 처럼 극한의 스피드를 만드는 회로들은 회로 파형이 거의 Sine 파처럼 보입니다... 그나마 그런 파형으로 값을 제대로 처리할 수 있는 이유가 바로 0, 1 2개의 값만 쓰기 때문입니다... 그 중간에 여러 값을 넣는 건 현실적으로 상당히 힘들죠...

0, 1의 구분, 즉 0 - Vdd의 스윙으로도 값을 충분히 구별할 수 없는 일부 고속 전송 로직(USB 2.0)에서는 값을 제대로 전달하기 위해서 -Vdd - Vdd 스윙을 합니다... Differential 회로라고도 하죠...

초고속에서는 0, 1을 구분하는 것도 이렇게 힘듭니다... 중간에 다른 값을 넣는 건 고속 로직이 아닌 경우에만 가능한 얘기입니다...

klutzy의 이미지

http://en.wikipedia.org/wiki/POWER6
http://news.com.com/2100-1006_3-6124451.html

정보를 찾아보니 간단히 10진수 소수점 연산을 강화한 것으로 보이네요. 기존 CPU에서는 1.5 / 10 = .149999..같은 값이 나오는데 이 CPU에서는 .15를 바로 내놓는 거라든지.

여튼 이 10진수 계산을 위해, 그리고 2진수와의 변환을 위해 50개의 명령어가 추가되었다고 합니다.

전웅의 이미지

그렇다고 일반 binary computer 에서는 floating-point number 를 반드시
2진수로만 저장/처리해야 한다거나, 혹은 10진수 기반의 floating-point
arithmetic 이 최근에서야 가능해진 것으로 오해해서는 안 됩니다.

제가 아버지께 물려 받은 공학용 계산기도 10진수 기반으로 floating/
fixed-point arithmetic 을 수행했습니다.

IBM 의 decimal computer system 은 말 그대로 현존 CPU 의 모든 연산을
사람처럼 수행한다는 점에서 의의가 있다고 할 수 있을 것 같습니다.

--
Jun, Woong (woong at icu.ac.kr)
Web: http://www.woong.org

--
Jun, Woong (woong at gmail.com)
http://www.woong.org

jachin의 이미지

좋은 정보 감사합니다.

사실 찾아보고 싶었는데 귀차니즘이 발동해서... (후덜덜덜)

알려주신 의미의 구조라면 대환영입니다. :)

범용 컴퓨터의 구조적 문제 때문에 생겼던 기술적 오차가

거의 없어진다는 얘기가 되니까요. :)

(아예 없어질 수도 있겠지요?)
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.