“소프트웨어는 하드웨어를 대체 할 수 있습니다”라는 문구의 의미는 무엇입니까?


90

하드웨어 / 소프트웨어 인터페이스 및 운영 체제에 대한 초보자 과정을 공부하면서 일부 하드웨어 부품을 소프트웨어로 교체하는 것이 더 나은지에 대한 주제가 종종 등장합니다. 연결할 수 없습니다.


7
범용 CPU에는 임의의 논리 연산을 실행할 수있는 명령어 세트가 있습니다. 소프트웨어는 CPU 명령 세트에 의해 실행되는 명령 스트림으로 컴파일됩니다. 이것은 "소프트웨어에서"하는 일의 예입니다. 반대로, 소프트웨어 알고리즘은 실리콘에서 로직 게이트의 특수화 된 어레이를 생성함으로써 "하드웨어에서"직접 실행될 수 있습니다.
키메라

12
"연결"은 소프트웨어와 하드웨어가 서로 다른 방식으로 논리 문을 실행한다는 것입니다.
키메라

14
그것은 정확히 말하는 것을 의미합니다. 소프트웨어와 하드웨어가 일을합니다. 때로는 소프트웨어 나 하드웨어로 작업을 수행 할 수 있으므로 하나를 선택하십시오. 그런 다음 다른 것과 함께하는 것이 더 나은지 궁금합니다.
immibis

4
분명히 모든 하드웨어를 소프트웨어로 교체 할 수는 없습니다 . 소프트웨어 모니터, 마우스 또는 키보드를 만들려고 할 필요는 없습니다. (가상 가상이
아닌 한

2
1) 하드웨어에 OS를 직접 작성하려면 매우 복잡한 칩이 필요하고 비용이 많이 듭니다. 2) 하드웨어를 쉽게 업데이트 할 수 없으므로 하드웨어 OS는 업데이트를받지 못합니다. 보안 문제가 발견되면 패치 등을 할 수 없습니다.
Bakuriu

답변:


176

다른 답변이 누락 된 기본 연결은 다음과 같습니다.

범용 컴퓨터 (예 : CPU)가 주어지면 정의한 계산을 거의 수행하도록 프로그래밍 할 수 있습니다. 그러나 특수 하드웨어가 더 잘 수행되거나 가치를 제공하지 못할 수 있습니다.

(이 답변은 데스크톱 처리에 중점을두고 해당 도메인의 예제를 사용합니다)

소프트웨어를 하드웨어로 교체

1990 년대 중후반에 PC 게임을 기억할만큼 나이가 든다면 Quake 와 같은 FPS 게임을 기억할 것입니다 . CPU가 그래픽을 렌더링하는 데 필요한 계산을 수행했음을 의미하는 "소프트웨어 렌더링"으로 시작되었습니다. 한편, CPU는 또한 입력 처리, 오디오 처리, AI 처리 등을 수행해야했습니다. CPU 자원에 많은 부담이있었습니다. 또한 그래픽 처리는 주류 CPU (현재 또는 현재)에 적합하지 않습니다. 최신 병렬 CPU보다 더 많은 코어가 필요한 매우 병렬 작업 인 경향이 있습니다 (8).

우리는 그래픽 처리를 소프트웨어에서 하드웨어로 옮겼습니다. 3dfx VoodooNvidia TNT (현재 GeForce )에 들어갑니다. 이들은 CPU에서 GPU로 처리를 오프로드하는 특수 그래픽 카드입니다. 이로 인해 워크로드가 분산되어 동일한 양의 작업을 수행 할 수있는 더 많은 컴퓨팅 리소스가 제공되었을뿐만 아니라 그래픽 카드는 3D 그래픽을 훨씬 더 빠르고 CPU보다 더 많은 기능으로 렌더링 할 수있는 특수 하드웨어 였습니다.

현대 시대로 빨리 나아가고 데스크탑 에는 CPU 이외의 그래픽이 필요 합니다 . 운영 체제조차 GPU 없이는 작동 할 수 없습니다. CPU가 실제로 GPU를 통합하는 것이 매우 중요합니다. 1

하드웨어를 소프트웨어로 교체

DVD가 새것이었을 때 데스크탑 컴퓨터에 DVD 드라이브를 설치할 수있었습니다. 그러나 오늘날의 CPU는 끊김없이 DVD 비디오 및 오디오 스트림을 디코딩 할만큼 강력하지 않았습니다. 처음에는 디코딩을 수행하기 위해 특수한 PCI 보드가 필요했습니다. 이것은 DVD 포맷을 해독하기 위해 특별히 제작 된 특수 하드웨어였습니다. 3D 그래픽과 마찬가지로 더 많은 컴퓨팅 리소스를 제공 할뿐만 아니라 작업에 맞게 사용자 지정하여 DVD를 원활하게 재생할 수 있습니다.

CPU가 훨씬 강력 해짐에 따라 "범용 컴퓨터에서"를 의미하는 "소프트웨어"로 DVD를 디코딩하는 것이 가능해졌습니다. 비효율적 인 프로세서 일지라도 DVD 재생이 사용자의 기대에 부응 할 수 있도록 충분한 원시 속도와 파이프 라인 최적화가있었습니다.

우리는 지금 강력한 배의 CPU를 수백 또는 수천이 2 DVD를 도입했을 때 우리가 가진로를. Blu-ray가 등장했을 때 범용 하드웨어는 작업을 처리 할만큼 강력하기 때문에 특수 하드웨어가 필요하지 않았습니다.

둘 다

최신 인텔 CPU에는 H.264 인코딩 및 디코딩에 대한 특수 지침 이 있습니다. 이것은 범용 CPU가 모두 동일한 칩에서 특수 기능을 얻는 추세의 일부입니다. CPU에는 유사한 회로가 포함되어 있기 때문에 DVD를 사용하는 경우와 마찬가지로 H.264를 효율적으로 디코딩하기 위해 별도의 PCI Express 보드가 필요하지 않습니다.


1 GPU는 그래픽 계산을 수행하도록 특별히 설계된 프로세서를 나타냅니다. 구형 2D 그래픽 카드는 GPU 가 아니 었습니다. 모니터와 대화하기 위해 DAC가있는 프레임 버퍼였습니다. 차이점은 GPU에는 특정 유형의 계산에서 탁월한 특수 프로세서가 포함되어 있으며 시간이 지남에 따라 실제로 프로그래밍이 가능하다는 사실입니다 (쉐이더). 그래픽 하드웨어에는 항상 프레임 버퍼의 데이터를 케이블 (VGA, DVI, HDMI, DisplayPort)을 통해 출력하고 모니터가 이해할 수있는 형식으로 변환하는 데 필요한 특수 회로가 포함되어 있습니다. 이는 계산 을 특수 하드웨어 로 오프로드하는 것에 대한 논의와 관련이 없습니다 .

2 DVD-Video는 1997 년에 Pentium 2가 새로 출시 된 시점에 출시되었습니다. 이것은 CPU의 전력 소비가 급격히 증가한시기였습니다. DVD 디코더가있는 새로운 P2 컴퓨터를 고려하거나 약간 오래된 P1에 컴퓨터를 설치할 수 있습니다. Wikipedia의 MIPS 목록을 사용하는 최신 6 코어 i7 과 비교하면 최신 CPU는 590 배에서 1,690 배 더 빠릅니다. 이것은 부분적으로 클럭 속도 때문일뿐 아니라 여러 코어로 표준으로 이동하고 최신 CPU는 클럭 틱당 코어 당 더 많은 작업을 수행합니다. 또한 기술이 발전함에 따라 데스크탑 (x86 서버 시장을 지배하는 인텔)은 데스크탑 사용자가 원하는 작업 (예 : 비디오 디코딩)의 속도를 높이기 위해 특수한 지침을 추가합니다.


오래된 2D 그래픽 카드는 오늘날 이해되는 의미에서 GPU가 아니었지만 그래픽 기능을위한 특수 하드웨어가 많이있었습니다. 블리 터는 한 위치에서 다른 위치로 많은 양의 메모리를 빠르게 복사 할 수 있습니다. 간단한 논리 연산을 사용하여 대상 위치의 데이터와 결합 할 수 있습니다. 이것은 VGA / SVGA 시대의 전형적인 2D 카드에 존재했습니다. 다른 컴퓨터에는 가정용 컴퓨터의 하드웨어 스프라이트 및 80 ~ 90 년대 게임 콘솔과 같은 다른 특수한 2D 하드웨어가있었습니다.
Sebastian Redl

127

소프트웨어 정의 라디오라는 가장 눈에 띄는 사례 중 하나를 아직 언급 한 사람이 아무도 없습니다.

현재의 스마트 폰을 50 년 전으로 가져와 1960 년대 중반부터 유능한 엔지니어에게 보여 주면 대부분의 스마트 폰을 이해할 수있었습니다. 슈퍼 컴퓨터를 주머니에 맞는 것으로 축소 할 수 있습니까? 검사. 패키지에 초 고품질 컬러 텔레비전을 사용할 수 있습니까? 검사. 그 시대의 컴퓨터보다 훨씬 더 빠르며, 더 많은 스토리지 등이 있습니까? 검사. 그러한 복잡한 기능을 수행 할 수있는 소프트웨어가 작성 되었습니까? 검사.

그러나 유능한 엔지니어에게이 패키지에는 매우 효율적인 송신기와 민감한 수신기 세트가 포함되어 있다고 말합니다. 여러 채널에서 동시에 송수신 할 수있는 디지털 확산 스펙트럼 트랜시버로 수 마일 떨어진 인프라 타워와 통신 할 수 있습니다. ; 고속 데이터를 빌딩 어딘가에있는 기지국과 통신하는 다른 디지털 트랜시버; 저전력 웨어러블 장치와 통신하는 또 다른 디지털 트랜시버; 중간 궤도의 위성에서 약한 신호를받는 다른 수신기는 거짓말 쟁이라고합니다.

그는 그러한 고감도의 수신기를 수많은 조정 회로 없이는 구성 할 수 없다는 것을 알고 있기 때문에 거짓말 쟁이라고 부를 것입니다. 이러한 회로에는 커패시터 및 인덕터와 같은 기술보다 물리학에 의해 더 정의 된 크기의 부품이 필요합니다.

그런 다음 현대 라디오에서는 대부분이 소프트웨어로 수행된다고 설명해야합니다. 안테나로부터 들어오는 신호가 중간 주파수로 변환되고 약간 증폭 된 후에는 아날로그-디지털 변환기에 의해 샘플링된다. 후속 프로세싱은 디지털 신호 프로세서에서 발생한다. 구식 하이 엔드 라디오에서 많은 양의 하드웨어를 필요로했던 이러한 튜닝, 필터링은 수학 방정식의 형태로 설명 될 수 있습니다. 그렇게 할 수 있다면 DSP에 의해 이러한 방정식이 실시간으로 실행될 수 있습니다.

이것은 하드웨어를 대체하는 소프트웨어의 가장 눈에 띄는 예 중 하나라고 생각합니다. 그 결과, 1960 년대 유능한 엔지니어에게도 마술과 비슷한 스마트 폰을 주머니에 넣었습니다.

이것과 비교하여 오늘날 차고 도어 오프너, 전자 욕실 저울 또는 TV 리모컨의 간단한 논리가 맞춤형 하드웨어 대신 범용 마이크로 컨트롤러 및 소프트웨어를 사용하여 구현된다는 생각은 거의 사소한 것처럼 보입니다 (그리고 확실히 많은 것입니다) 소프트웨어 정의 라디오보다 가상의 1960 년대 엔지니어에게 더 잘 이해됩니다.)


16
과소 평가 된 답변입니다. 전자 제품에 대한 배경 지식이 거의없고 몇 개의 무선 장치를 직접 만들었지 만 요즘 소프트웨어에서 신호 튜닝을 수행한다는 것을 알지 못했습니다. 내 마음은 바나나가 정확히 어떻게되는지 상상하려고합니다.
Machado

5
@Machado 만약 당신이 심각한 전자 디자인을한다면, 그것이 기본적으로 모든 수학 방정식이라는 것을 빨리 알게 될 것입니다. 물리적 전자 장치는 더하기, 빼기, 나누기, 곱하기, 차별화, 통합 등을 수행 할 수 있습니다. 모든 저주파 잡음을 걸러내는 물리적 커패시터 대신 코드로 수행됩니다. 물리적 신호는 아날로그-디지털 변환기라고하는 특수화 된 하드웨어 덩어리를 통해 소프트웨어에 "로드"됩니다.
CHendrix

6
@Machado dspguide.com/pdfbook.htm 이 교과서에는 많은 유사 코드 예제가 있습니다. 보석입니다.
brian_o

4
@Machado 소프트웨어 정의 라디오 (약 $ 20)를 집어 들으며 연주를 시작하는 것을 잊지 마십시오 !
Michael Hampton

5
1960 년대의 남자에게 당신이 주로 컴퓨터의 모든 힘과 기능을 사용한다고 말하지 마십시오. 음식 사진을 게시하고 고양이 비디오를 스트리밍하며 포켓몬을 사냥하는 것입니다.
Kopperud

42

이 회로를 고려하십시오.

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

플립 플롭, 즉 쌍 안정 멀티 바이브레이터입니다. 이 코드로 바꿀 수 있습니다 :

static bool toggle;

if (toggle == true) 
{
    lblTop.BackColor = Color.Black;
    lblBottom.back Color = Color.Red;
}
else
{
    lblTop.BackColor = Color.Red;
    lblBottom.BackColor = Color.Black;
}
toggle = !toggle;

1
답변과 게시물 수정에 대해 대단히 감사합니다! 그것에 대해 조금 더 배울 것을 제안하는 책이 있습니까? Gabriele
Gabriele Scarlatti

11
코드 : 컴퓨터 하드웨어 및 소프트웨어의 숨겨진 언어를 확인하십시오 . 그것은 잘 sofware 하드웨어에서 전환 커버
이고르 밀라에게

4
@igormilla 나는 당신의 제안을 보증 할 수 있습니다. 나는 현재이 책을 읽고 있는데, 지금까지 읽은 컴퓨터 아키텍처에 관한 최고의 책이다. 그것은 목에 너무 많은 전문 용어를 쏟지 않고 각 개념을 명확하고 간결하게 설명하는 훌륭한 일을합니다. 하드웨어와 소프트웨어의 관계를 더 깊이 이해하고 싶은 사람에게 강력히 추천합니다.
Christian Dean

1
@ igormilla, 좋은 찾기! 행복하게도 Safari Books Online의 일부로 제공 되므로 지금 읽을 수 있습니다. :) (게시하기 전에 내 의견 다시 읽기 : 광고처럼 들리지만 나는 단지 행복한 고객입니다. 작년에 내가 즉시 찾아 보거나 전체를 읽을 수없는 권장 기술 책을 찾지 못했습니다 온라인).
와일드 카드

29

그것은 정확히 어떤 소리인지를 의미합니다.

특히 유명한 예는 Steve Wozniak가 Apple II 용으로 설계 한 Disk II Drive 입니다.

주요 혁신은 경쟁 업체가 하드웨어에 의존하는 동안 소프트웨어를 사용하여 컨트롤러를 컴팩트하게 만드는 것이 었습니다. 애플의 전자 기술자였던 빌 페르난데즈 (Bill Fernandez)는 "[Wozniak의] 디자인의 주요 장점은 일반적인 60-70 대신 6 개의 칩만 사용했다"는 점을 기억합니다.

더 익숙한 또 다른 예는 Emulators입니다. 소프트웨어의 전체 하드웨어 (및 소프트웨어)를 완전히 대체합니다. CPU, 다양한 제어 칩, 저장 장치까지.

이제 모든 하드웨어를 제거 할 수는 없으며 결국 에는 소프트웨어를 실행할 무언가 가 필요 합니다 . 그러나 일반적으로 하드웨어에서 구현할 수있는 모든 논리 작업은 소프트웨어로도 구현할 수 있습니다 (기본 하드웨어 및 구현에 따라 성능이 동일하지 않거나 느리거나 빠르거나 다른 상황에서 발생할 수 있음).


따라서 항상 필요한 유일한 것은 하나 이상의 프로세서입니까?
Gabriele Scarlatti

3
@GabrieleScarlatti 좀 더 구체적으로 말하자면, I / O 장치는 하드웨어 여야하지만 (제어기는 소프트웨어 일 수 있습니다!) 메모리는 하드웨어 여야합니다. 이들 간의 연결은 하드웨어 여야하지만 필요한 논리는 제한적입니다. 핀이 충분하면 간단한 와이어, 핀이 충분 하지 않으면 약간 간단한 시프트 레지스터 또는 유사한 장치가 있습니다.
8bittree

아하 그래, 나는 너무 근사했다, 그것에 대해 더 배울 수있는 좋은 책을 제안 할 수 있습니까? 답변 주셔서 감사합니다!
Gabriele Scarlatti

1
이 주제에서 지금까지 가장 좋은 대답은 "에뮬레이터"입니다.
Machado

1
Woz를 언급하지 않고이 주제에 대해 이야기 할 수 없습니다!
James R.

11

이것이 사실 인 또 다른 분야는 신시사이저입니다.

초기 신시사이저는 100 % 아날로그 하드웨어로 파형을 직접 생성 한 다음 회로 (필터, 증폭기 등)를 통해 수정했습니다. 사운드를 디지털로 합성 할 수 있었지만 일반인이 감당할 수없는 컴퓨팅 리소스 (실제 메인 프레임 및 맞춤형 디지털-아날로그 변환기 하드웨어)가 필요했습니다.

칩 제작이 개선됨에 따라 신시사이저는 순수한 아날로그에서 디지털 신호로 제어되는 신시사이저 칩 으로 이동 했지만 여전히 아날로그 신호를 생성 한 다음 순수한 디지털 합성 (샘플 재생, FM 합성 , 진정한 첨가제 합성 등)으로 전환했습니다.

오늘날 프로세서는 프로그래머가 실시간으로 동작을 시뮬레이션하여 원래 회로의 동작을 정확하게 복제하는 고전적인 아날로그 신시사이저의 컴퓨터 버전을 만들 수있을 정도로 충분히 싸고 빠릅니다. 실제로 전화 및 태블릿은 이제 충분히 빠르게 실행할 수 있습니다. 이 재창조를 실행하십시오. 코르 IMS-20은 일례이다.

클래식 신디사이저와 새 신디사이저 모두 Ableton Live, Logic 또는 Cubase와 같은 디지털 오디오 프로그램을위한 VST 또는 AU 플러그인으로 제공되며, 공간이나 돈이 없어서 사용할 수없는 사람들에게 신디사이저에 액세스 할 수 있습니다. 그들.

편집 :이 시점에서 아날로그 모듈 합성을 실시간으로 시뮬레이션하는 VCVRack 도 언급해야합니다 . 몇 시간 동안 음악을 몇 시간 동안 렌더링 할 수있는 상당한 발전입니다.


1
1977 Atari 2600은 디스플레이 생성에 39 % 이상의 CPU 시간을 남겨도 5 옥타브 범위의 4 음성 음악을 생성하기에 충분한 CPU 마력을 가지고 있습니다. 필요한 룩업 테이블은 4K 카트리지의 절반 이상 (약 2300 바이트)을 차지하지만 카트리지가 4K보다 클 수도 있습니다. 음악을 재생하는 동안 매우 복잡한 게임 플레이를 할 수 없었을 수도 있지만 스크롤 텍스트가있는 매우 화려한 제목 화면이 확실한 가능성 일 것 >:*3입니다.
supercat

예, 약 10 개를 빠뜨 렸습니다. 20? 수년간의 개발로 인해 내 대답은 소설로 변하지 않을 것입니다. 아주 좋은 포인트! Mac 512K에서 4 개의 음성을 거의 처리 할 수 없는 (Musicworks) [ thinkclassic.org/viewtopic.php?id=550] 라는 것이있었습니다.
Joe McMahon

68000은 6502보다 각 명령을 실행하는 데 더 많은주기가 필요하지만 적절한 코딩을 사용하면 4 음성 웨이브 테이블 합성이 상당히 효율적이어야합니다. 각 볼륨 설정에 대해 256 바이트 테이블을 사용하여 진폭 스케일링으로 약 240 사이클 / 샘플을 추정했습니다. 진폭 스케일링을 제거하면 해당 시간을 56 사이클 / 샘플로 줄일 수 있습니다.
supercat

7

예전에는 컷이 분명했습니다. 빠른 실행이 필요한 대부분은 하드웨어로 구현해야했습니다. 주파수를 생성하는 멀티 바이브레이터를 예로 들어 보겠습니다. 얼마 전에 (고정 된) 주파수를 생성하기 위해 몇 개의 트랜지스터, 커패시터 및 결국 석영이 필요했습니다. 이제 몇 센트 정도의 저렴한 마이크로 컨트롤러가 있습니다. 속도가 너무 빠르므로 멀티 바이브레이터를 쉽게 만들 수 있습니다. 또한 소프트웨어를 통해 이전에는 다른 하드웨어를 납땜해야하는 위치에서 발생하는 주파수를 쉽게 제어 할 수 있습니다. 그러나 특정 (그러나 현재는 다소 높은) 주파수를 넘어가려면 여전히 순수한 하드웨어가 필요합니다. 보시다시피, 둘 사이에 선이 있지만 소프트웨어로 해결할 수있는 부분이 (지수 적으로) 커지고 있습니다.

실제로 편집 “소프트웨어는 하드웨어를 교체 할 수 있습니다”는 실제로 정확하지 않습니다. 하드웨어가 너무 강력해서 하드웨어를 에뮬레이트하는 소프트웨어를 실행하는 데 사용할 수 있다는 사실입니다. 따라서 간단하지만 정적으로 납땜 된 트랜지스터 대신 소프트웨어를 이해하는 수백만 개의 트랜지스터를 사용합니다. 따라서 "하드웨어는 이제 소프트웨어를 이해할 수 있습니다"라는 용어를 사용해야합니다.


공정하게 말하면, 거의 모든 마이크로 컨트롤러에는 하드웨어로 구현 된 범용 PWM 모듈이 하나 이상 있습니다. 따라서 CPU에서 실행되는 소프트웨어를 사용하여 주파수 출력을 bitbang하는 경우는 거의 없습니다.
Lyndon White

@LyndonWhite PWM은 일반적인 멀티 바이브레이터가 아닙니다. 주파수 발생기의 서브 세트 인 펄스 폭을 변조했습니다.
qwerty_so

1
실제로 이것은 사실입니다. 내 요점은 PWM이 (원하는 듀티 사이클 범위 내에서) 생성하려는 가장 일반적인 유형의 신호이기 때문에 마이크로 프로세서에 특수 하드웨어가있는 이유입니다. 필자는 반대의 "하드웨어가 소프트웨어를 대체 할 수있다"는 예로서 PWM과 비트 뱅킹을 비교했을 것이다.
Lyndon White

@LyndonWhite 내 답변을 수정했습니다.
qwerty_so

5

아케이드 게임 탱크 (1976 년경)와 홈 콘솔 게임 인 Combat (1977)의 비교는 40 년 전에 소프트웨어가 하드웨어를 어떻게 대체 할 수 있는지에 대한 좋은 예입니다.

아케이드 게임 탱크 (1976 년경)는 두 명의 플레이어가 탱크 주위를 운전하고 서로를 쏠 수 있도록 허용했습니다. 여기에는 어떤 종류의 프로세서도 포함되지 않았지만 전자 빔, 탱크 및 샷의 수평 및 수직 위치와 플레이어의 점수, 회전 각도, 경과 시간을 추적하는 하드웨어 카운터가 있습니다. 점수, 플레이어의 탱크 모양 및 배경과 관련된 비트 맵 데이터를 출력하는 것은 논리적 인 논리를 가졌습니다.

Atari 2600 비디오 컴퓨터 시스템 (1977 년경 홈 게임 콘솔)에는 2 개의 비트 맵 객체와 4 개의 가변 폭 펄스 발생기의 수평 (수직은 아님) 위치를 추적하고 20 비트 폭의 로우를 유지하고 클럭 아웃하는 하드웨어가 포함되어 있습니다. -해상도 플레이 필드 그래픽 패턴과 2 개의 고해상도 8 비트 패턴, 플레이어의 래치 색상, 배경 및 플레이 필드, 다양한 객체 간의 충돌을 감지합니다. 범용 프로그래밍 가능 타이머도 포함되었지만 하드웨어에는 위의 것 외에 다른 것이 거의 없습니다. 그럼에도 불구하고 하드웨어가 게임 탱크의 하드웨어보다 훨씬 단순하더라도 2K ROM 카트리지 Combat를 사용하면 2600은 동일한 기본 게임을 수행 할 수 있지만 다른 많은 기능 (다양한 차량 및 배경, 튀는 샷 등)을 사용할 수 있습니다. 대부분의 아케이드 머신을 대체 할 수 있습니다. ' 소프트웨어가있는 하드웨어. 흥미롭게도 Atari 2600은 상업용으로 판매되는 마이크로 프로세서 기반 홈 비디오 게임 시스템 중 두 번째로 간단한 하드웨어 플랫폼 일지라도 하드웨어를 소프트웨어로 교체하는 것이 용이하도록 설계되어 있습니다. 경쟁사.


Tank를 플레이하는데 많은 시간과 분기를 보냈습니다. 내 친구가 그 오래된 게임 콘솔을 복원했으며 그것이 모든 하드웨어라는 것을 알게되어 매우 놀랐습니다. 누군가가 Karnaugh 맵을 관리하기 위해 많은 시간을 보냈습니다. 소프트웨어로 복제하는 것이 훨씬 쉬우 며 유지 관리가 덜 필요합니다. 소행성과 동일합니다. 그러나 콘솔 컨트롤을 포함하여 정확하게 복제하지 않는 한 동일한 느낌으로 끝나지 않습니다. 또한 벡터 그래픽은 래스터 디스플레이, IMO에서 동일하게 보이지 않습니다.
SDsolar

@SDsolar : 나는 Atari에 의해 출판 된 시트를 읽는 것을 기억한다. 소유자가 게임 플레이의 다양한 측면을 조정하기 위해 할 수있는 몇 가지 모드를 가지고있다. "기능) 및 보이지 않는 탱크 기능과 같은 것을 추가 할 수 있습니다. 펌웨어를 변경하려면보다 복잡한 장비가 필요했고 하드웨어에서 쉽게 사용할 수있는 일부 종류의 모드는 펌웨어에서 불가능할 수 있습니다 (예 : 플레이어 위치가 이진 카운터를 사용하는 경우 플레이어가 스캔 라인 당 두 번 나타나는 것은 쉽지 않습니다).
supercat

1

"소프트웨어는 하드웨어를 대체 할 수 있습니다"라는 문구는 분명한 이점이없는 한 하드웨어 문제를 해결하려고하지 않는다는 경고입니다. 소프트웨어는 개발하는 데 10 배-50 배 저렴하고 하드웨어보다 단위당 생산하는 비용이 거의 저렴합니다. 소프트웨어에서 X를 실제로 효율적으로 수행 할 수 없다면 하드웨어에서 X를하는 것이 좋은 해결책은 아닙니다.


공감하지는 않았지만 이것이 정확하지 않다고
J. Allan

@ JefréN. 그것은 단지 하드웨어를 개발하는 것이 아니라 구매하는 것입니다.
DepressedDaniel

네가 옳아; 나는 그 질문의 의도를 오해했다. "소프트웨어가 하드웨어보다 개발하는 데 10 배 -50 배 저렴하다"는 주장을 뒷받침하는 인용 또는 링크가 있습니까? 나는 그것이 야구장인지 또는 그것이 일반적으로 받아 들여지는 검증 된 진술인지 아는 것에 관심이있다. (죄송합니다, 미안합니다; btw.; D)
J. Allan

공감하지는 않았지만 소프트웨어가 더 저렴하다는 것이 항상 사실이 아니기 때문에 공감할 수는 없습니다. 종종 훨씬 비쌀 수 있습니다. 또한 소프트웨어를 사용하여 더 빠른 속도로 실행할 수있는 하드웨어를 만드는 ASIC 및 FPGA의 개념을 고려하십시오. 실행 파일과 해석 된 프로그램의 궁극적 차이와 비슷하지만 더 그렇습니다.
SDsolar

1
@ SDsolar 동일한 기능 이 소프트웨어보다 하드웨어에서 더 저렴하게 구현 되는 경우를 들어 보지 못했습니다 . 소프트웨어에서 실행하는 것이 가능하다면 소프트웨어에서 수행하는 것이 일반적으로 더 저렴할 것입니다. 물론, 예를 들어, 소프트웨어 렌더러는 그래픽 카드와 비교할 때 성능 문제가 더 빨리 발생합니다. 그러나 이는 특정 성능 기준을 달성하기위한 소프트웨어 구현의 가능성에 더 가깝습니다.
DepressedDaniel

1

뉘앙스가 잘 해결되었지만 OP의 걸림돌이 될 수 있다고 생각합니다. 하드웨어를 소프트웨어로 교체하는 것은 불가능합니다. '하드웨어'는 '소프트웨어'솔루션보다 훨씬 적은 '하드웨어'를 포함합니다.

차이점은 프로세스 / 알고리즘 / 계산 의 논리 를 하드웨어와 소프트웨어간에 이동할 수 있다는 것입니다. 많은 예가 제시되었으므로 자세히 설명하지 않겠습니다.


-1

가상 메모리가있는 초기 컴퓨터에서는 TLB 누락시 작업을 전환하여 새 페이지 항목을로드해야했습니다. OS 소프트웨어는 올바른 프로세스를 찾고 페이지 테이블을 안내하여 올바른 항목을 찾아서 TLB에 다시 씁니다. 원래 프로세스로 다시 전환하기 전에 계속하십시오.

이제 대부분의 CPU는 하드웨어를 사용하여 프로세스를 수행하고, 페이지 테이블을 읽고, 페이지 테이블을 걷고, TLB를 업데이트합니다.

두 방법 모두 소프트웨어를 사용하여 페이지 결함을 처리해야하지만, TLB-miss가 페이지 결함을 수동으로 초과하면 하드웨어는 여전히 소프트웨어 성능을 능가합니다.

반복적으로 처리해야하는 간단한 절차가 있으면 일반적으로 하드웨어 교체를 찾습니다. 제어 흐름이 복잡한 복잡한 하드웨어 솔루션이있는 경우 소프트웨어를 사용하여 하드웨어를 단순화 할 수 있습니다.


-2

소프트웨어가 하드웨어를 대체 할 수있는 많은 경우가 있으며 그 반대도 마찬가지입니다.

이에 대한 전형적인 예는 수학 조회 테이블입니다. 매번 일반적인 표현식으로 결과를 계산하는 대신 내부적으로 수학 코 프로세서에 저장되며 필요할 때 간단히 참조 할 수 있습니다.

대부분은 이미 오디오 필터 및 페달이나 앰프와 같은 실제 악기 및 장치를 모방 할 수있는 소프트웨어에 익숙 할 것입니다.

물리적 시스템보다 더 빠르고 저렴할 경우 가상으로 생성 할 수있는 모든 하드웨어가 사용됩니다.


-2

회계에서는 이제 송장의 하드 카피 (예 : 전자 사본)를 전자적으로 보낼 수 있으며 소프트웨어는 이러한 종류의 서류 수령 및 처리를 점점 더 많이 처리하기 시작합니다. 하드웨어가 소프트웨어로 대체되는 훌륭한 예입니다.

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