아날로그 신호 산술이 디지털 신호 산술보다 빠릅니까?


36

디지털 FPU (CPU-> DAC-> 아날로그 FPU-> ADC-> CPU) 대신 아날로그 신호 산술 (정확도 및 정밀성 비용)을 사용하는 경우 이론적으로 최신 프로세서 속도를 높일 수 있습니까?

FPU 곱셈은 종종 한 번의 CPU 사이클을 필요로하므로 아날로그 신호 분할이 가능합니까?


그것은 당신에게 질문에 대답하지 않지만, 군함 arstechnica.com/information-technology/2014/03/…
Doombot

멀티 스테이트 디지털 로직 (예 : 2 개 대신 4 개 상태의 "플립 플롭")을 사용하라는 제안이 수시로있었습니다. 이것은 배선 병목 현상을 감소시키기 때문에 실제로 일부 생산 메모리 칩에서 수행되었습니다. (그러나 현재 생산 된 칩이 다중 상태 로직을 사용하는지 여부는 모르겠습니다.)
Hot Licks

답변:


44

기본적으로 모든 회로는 아날로그입니다. 아날로그 전압 또는 전류로 계산을 수행 할 때 발생하는 문제는 노이즈와 왜곡의 조합입니다. 아날로그 회로는 노이즈의 영향을 받기 때문에 아날로그 회로를 엄청나게 큰 선형으로 만들기가 매우 어렵습니다. 아날로그 회로의 각 단계는 신호에 노이즈 및 / 또는 왜곡을 추가합니다. 이를 제어 할 수는 있지만 제거 할 수는 없습니다.

디지털 회로 (즉, CMOS)는 기본적으로 정보를 표현하기 위해 두 단계 만 사용하여이 모든 문제를 회피하고 각 단계는 신호를 재생성합니다. 출력이 10 % 정도 꺼지면 누가 임계 값보다 높거나 낮아야합니까? 출력이 10 % 왜곡 된 경우 누가 신경 써야하는지 다시 임계 값 이상이어야합니다. 각 임계 값 비교에서 신호는 기본적으로 재생성되고 잡음 / 비선형 성 문제 등입니다. 벗겨졌다. 이것은 입력 신호를 증폭하고 클리핑하여 수행됩니다. CMOS 인버터는 비교기로 개방 루프로 작동되는 두 개의 트랜지스터로 만든 매우 단순한 증폭기입니다. 레벨이 임계 값을 넘어 서면 약간의 오류가 발생합니다. 프로세서는 일반적으로 10 ^ -20, IIRC 정도의 비트 오류율을 갖도록 설계되었습니다. 이것 때문에, 디지털 회로는 믿을 수 없을 정도로 견고합니다. 선형성과 노이즈가 기본적으로 문제가되지 않기 때문에 매우 광범위한 조건에서 작동 할 수 있습니다. 64 비트 숫자로 디지털 방식으로 작업하는 것은 거의 사소한 일입니다. 64 비트는 385dB의 동적 범위를 나타냅니다. 그것은 19의 순서입니다. 아날로그 회로를 사용하면 근처에 갈 수있는 방법이 없습니다. 해상도가 1 피코 볼트 (10 ^ -12) 인 경우 (기본적으로 열 노이즈에 의해 즉시 스윕 됨) 최대 값 10 ^ 7을 지원해야합니다. 10 메가 볼트입니다. 아날로그에서 이런 종류의 다이나믹 레인지를 조작 할 수있는 방법은 절대 없습니다. 단순히 불가능합니다. 아날로그 회로의 또 다른 중요한 절충점은 대역폭 / 속도 / 응답 시간 및 잡음 / 동적 범위입니다. 좁은 대역폭 회로는 잡음을 평균화하고 넓은 동적 범위에서 잘 수행합니다. 단점은 느리다는 것입니다. 광대역 회로는 빠르지 만 잡음은 더 큰 문제이므로 동적 범위가 제한됩니다. 디지털을 사용하면 문제에 비트를 던져 동적 범위를 늘리거나 병렬로 작업하거나 둘 다 수행하여 속도를 높일 수 있습니다.

그러나 일부 작업의 경우 아날로그는 더 빠르고 간단하며 전력 소비가 적은 등의 장점이 있습니다. 디지털은 레벨과 시간에 양자화되어야합니다. 아날로그는 둘 다 연속적입니다. 아날로그 승리의 한 예는 wifi 카드의 라디오 수신기에 있습니다. 입력 신호는 2.4GHz로 제공됩니다. 완전 디지털 수신기는 초당 최소 5 기가 샘플을 실행하는 ADC가 필요합니다. 이것은 엄청난 양의 전력을 소비합니다. 그리고 그것은 ADC 이후의 처리를 고려하지도 않습니다. 현재이 속도의 ADC는 실제로 고성능베이스 밴드 통신 시스템 (예 : 높은 심볼 속도 코 히어 런트 광 변조) 및 테스트 장비에만 사용됩니다. 그러나 소수의 트랜지스터와 패시브를 사용하여 2를 다운 컨버전 할 수 있습니다.

결론은 아날로그 및 디지털 계산에 장단점이 있다는 것입니다. 노이즈, 왜곡, 낮은 다이나믹 레인지 및 / 또는 낮은 정밀도를 견딜 수 있으면 아날로그를 사용하십시오. 노이즈 나 왜곡을 견딜 수없고 높은 동적 범위와 높은 정밀도가 필요한 경우 디지털을 사용하십시오. 더 많은 정밀도를 얻기 위해 항상 문제에 더 많은 비트를 던질 수 있습니다. 그러나 이에 상응하는 아날로그는 없습니다.


이것은 훨씬 더 많은 찬사를받을 가치가 있습니다!
John U

알고 있었어! 나는 그것을 좋은 말로 표현할 수 없었다. 무선 수신기에 대한 유용한 추가 정보.
Smithers

2
샘플 앤 홀드 회로? 자기 테이프? 음반 기록? 사진 필름? 아날로그 메모리 장치는 확실히 존재하지만 디지털 장치와는 약간 다른 특성을 가지고 있습니다.
alex.forencich

1
모든 범위, 예. 그러나 임의의 해상도의 범위는 무엇입니까? 별로.
alex.forencich 1

1
@ehsan 증폭은 다이내믹 레인지를 증가시키지 않으며, 최소값 (노이즈 플로어)이 최대 값과 함께 증폭됩니다.
mbrig

20

지난 달“ Back to the Future : Analog Signal Processing ” 이라는 IEEE 토크에 참석했습니다 . 이 연설은 IEEE 솔리드 스테이트 서킷 소사이어티 (Solid State Circuit Society)에서 주최했습니다.

아날로그 MAC (곱셈 및 누적)은 디지털보다 적은 전력을 소비 할 수 있다고 제안되었습니다. 그러나 한 가지 문제는 아날로그 MAC이 아날로그 노이즈의 영향을 받는다는 것입니다. 따라서 동일한 입력을 두 번 표시하면 결과가 정확히 동일하지 않습니다.


1
(아날로그 노이즈의 경우 +1)
George Herold

마찬가지로 군함에서 기계식 컴퓨터를 사용하는 것에 관한 기사 arstechnica.com/information-technology/2014/03/…
Doombot

18

당신이 말하는 것은 아날로그 컴퓨터 (Analog Computer)라고하며, 컴퓨터 초기에는 상당히 널리 퍼져있었습니다. 60 년대 말쯤에 그들은 본질적으로 사라졌습니다. 문제는 디지털보다 정밀도가 훨씬 나빠질뿐만 아니라 정확도도 떨어진다는 것입니다. 또한 디지털 계산 속도는 겸손한 아날로그 회로보다 훨씬 빠릅니다.

아날로그 분배기는 실제로 가능하며 Analog Devices는 약 10 가지 모델을 만듭니다. 이들은 실제로 연산 증폭기의 피드백 경로에 삽입되어 디바이더를 생성하는 멀티 플라이어이지만 AD는 제수의 큰 (60dB, 생각) 다이내믹 레인지에 최적화 된 전용 디바이더를 생성하는 데 사용됩니다.

기본적으로 아날로그 계산은 디지털에 비해 느리고 부정확합니다. 뿐만 아니라 특정 아날로그 계산을 실현하려면 하드웨어를 재구성해야합니다. 게임이 늦게, 소프트웨어 제어 하에서이 작업을 수행 할 수있는 하이브리드 아날로그 컴퓨터가 생산되었지만이 장치는 부피가 커서 특수 용도를 제외하고는 절대로 붙 잡히지 않았습니다.


6
나는 당신의 대답, (+1)과 질문을 좋아합니다. 그러나 나는 속도 부분에 동의하지 않을 것입니다. 아날로그는 매우 빠릅니다. 문제는 정확성과 아마도 가장 중요한 소음입니다. 아날로그에는 항상 약간의 노이즈가 있습니다. 디지털은 컴퓨터에 소음이 없습니다.
George Herold

친절한 말 감사합니다. 그러나. 아날로그는 "충분히"빠를 수 있지만 일반적으로 디지털이 더 빠릅니다. 노이즈는 시뮬레이션하기 쉽습니다.
WhatRoughBeast

4
아날로그는 산술, exp, sqrt 등이면 빠릅니다. 그러나 커패시터와 인덕터를 추가하자마자 차별화 및 통합에 필요한 경우 속도가 느립니다. 역사의 아날로그 컴퓨터는 종종 미분 방정식을 푸는 데 사용되었습니다. 그러나 일부는 방금 대수를 수행했습니다. 그래서 사람들마다 왜 아날로그 계산 속도에 대한 다른 견해를 가질 수 있는지 알 수 있습니다.
DarenW

1
왜 아날로그가 느린 지 설명해 주시겠습니까? 디지털 컴퓨터에서 일부 명령은 반복이 거의 필요하지 않기 때문에 "느리게"수행됩니다. 그러나 아날로그를 사용하면 결과를 얻는 데 단 한 번의 통과가 필요하다고 생각합니다.
mrpyo

1
@mrpyo-물론 두 기능을 모두 수행 할 수 있습니다. 승수를 가져와 두 입력을 모두 연결하면 "제곱"이됩니다. 당신이 회로에 사용하는 Photon은 두 개의 입력을 op amp 출력에 연결하여 그의 답에 사용했습니다. 다이오드의 전압 / 전류 관계는 지수이므로 지수를 생성하는 데 사용할 수 있습니다. 피드백 경로에 다이오드를 넣으면 대수를 얻을 수 있습니다. 그러나 모든 경우에 다이내믹 레인지는 증폭기 오프셋, 드리프트 등에 의해 제한 될 수 있습니다. 다이오드 회로의 경우 다른 에러 소스도 있습니다.
WhatRoughBeast

11

FPU 곱셈은 종종 한 번의 CPU 사이클을 필요로하므로 아날로그 신호 분할이 가능합니까?

아날로그 멀티 플라이어가있는 경우 아날로그 분배기는 "쉽게"만들 수 있습니다.

개략도

이 회로 시뮬레이션CircuitLab을 사용하여 작성된 회로도

X1과 X2가 양수라고 가정하면 Y = X1 / X2가 해결됩니다.

아날로그 승수가 존재하므로이 회로는 원칙적으로 가능합니다. 불행히도 대부분의 아날로그 곱셈기는 허용되는 입력 값의 범위가 상당히 제한되어 있습니다.

다른 접근법은 먼저 로그 증폭기를 사용하여 X1 및 X2의 로그를 구하고 빼고 지수화하는 것입니다.

디지털 FPU (CPU-> ADC-> 아날로그 FPU-> DAC-> CPU) 대신 아날로그 신호 산술 (정밀한 비용으로)을 사용하는 경우 이론적으로 최신 프로세서 속도를 높일 수 있습니까?

핵심은 기술의 문제입니다. 디지털 연산 속도를 높이기 위해 R & D에 많은 투자를 해왔 기 때문에 아날로그 기술은이 시점에서 따라 잡을 수있는 길이 멀었습니다. 그러나 그것이 불가능하다고 말할 방법은 없습니다.

반면에, 위의 조잡한 분배기 회로가 매우 신중한 작업을 수행하지 않고 10 MHz 이상에서 작동하고 더 빨리 진행하기 위해 심층 다이빙 연구를 수행하지 않을 것으로 예상됩니다.

또한 우리는 정밀도를 무시해야한다고 말하지만, 내가 그린 것과 같은 회로는 아마도 튜닝없이 1 % 정도로 정확하고 새로운 기술을 발명하지 않으면 0.1 %까지 정확할 것입니다. 유용하게 계산할 수있는 입력의 동적 범위도 비슷하게 제한됩니다. 따라서 사용 가능한 디지털 회로보다 100 ~ 1000 배 느릴 뿐만 아니라 동적 범위도 IEEE 300 비트 부동 소수점에 비해 10 ~ 300 배 더 나쁩니다.


5
안녕하세요, 10MHz를 수행하는 오래된 AD 멀티 플라이어가 있습니다. 나는 지금 더 빨리 무언가를 얻을 수있을 것입니다. 멍청이 렌치를이 주제에 던지기 만하면 양자 컴퓨팅이 패닝되면 아날로그가됩니다.
George Herold

@GeorgeHerold, 이것이 양자 컴퓨팅이 뱀 오일 인 이유 중 가장 좋은 주장입니다.
광자

매우 깔끔한 트릭. 그 계산이 생각 제외 A (X1) / (1 + A (X2)), 큰 이득 A. 대한 정확해야한다
예일 장

@georgeherold 믹서는 실제로 약간 이상한 입력 요구 사항을 가진 빠른 아날로그 멀티 플라이어이며 요즘 마이크로파 사람들은 요즘 최대 60GHz 이상을
얻는다고 생각합니다.

@mbrig, 어려운 점은 op-amp이며 피드백 루프를 닫아 두는 것입니다.
광자

7
  1. 아니요. DAC 및 ADC 변환은 디지털 나누기 또는 곱셈보다 훨씬 많은 시간이 걸리기 때문입니다.

  2. 아날로그 곱셈과 나눗셈은 그렇게 간단하지 않고 더 많은 에너지를 사용하며 비용 효율적이지 않습니다 (디지털 IC와 비교).

  3. 고속 (GHz 범위) 아날로그 곱셈 및 나눗셈 IC의 정밀도는 약 1 %입니다. 빠른 아날로그 분배기로 나눌 수있는 것은 8 비트 숫자 나 그와 비슷한 것입니다. 디지털 IC는 이와 같은 숫자를 매우 빠르게 처리합니다.

  4. 3.410343.41034

여기에서 Analog Devices가 제공하는 아날로그 분배기 및 승수를 볼 수 있습니다 ( link )

여기에 이미지 설명을 입력하십시오

이러한 것들은 일반적인 컴퓨팅에는 그다지 유용하지 않습니다. 이것들은 아날로그 신호 처리에 훨씬 좋습니다.


4. 정확하지 않습니다. 부동 소수점 숫자는 과학적 표기법으로 표시되며 기본적으로 계수와 지수는 더 제한된 범위를 포함합니다.
mrpyo

@mrpyo 확실합니까? 16 비트 부동 소수점 범위는 편집 전에 쓴 숫자 (0000000000000.1 및 10000000000000과 같은 것)보다 훨씬 높다고 생각합니다.
Kamil

en.wikipedia.org/wiki/IEEE_floating_point C의 float경우 계수는 23 비트, 지수는 8 비트, 부호는 1 비트입니다. 이 3 가지 범위를 아날로그로 나타내야합니다.
mrpyo

직렬로 여러 대를 사용하고 한 번에 하나만 사용하여 필요한 주파수를 줄일 수 없습니까?
mrpyo

4
부동 소수점에 해당하는 실제 아날로그는 로그 영역이 될 수 있으므로, FP 가수보다 높은 동적 범위는 불필요합니다. 그렇지 않으면 좋은 지적입니다.
Brian Drummond

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.