Articles

누산기는 무엇입니까?


최상의 답변

누산기는 평균, 표준 편차, 분의 효율적인 계산에 필요한 합계, 개수를 점진적으로 추적하는 객체입니다. , 최대 등. 매번 다시 계산할 필요가 없습니다.

답변

질문을 조금 더 구체적으로 살펴 보겠습니다. 누산기 명령어 세트 아키텍처와 범용 레지스터 명령어 세트 아키텍처의 차이점은 무엇입니까?

이것은 명령 세트에 대한 디자인 공간의 두 지점을 나타냅니다. CPU 명령이 수행해야하는 작업을 고려하십시오. 지금은 계산 지침을 고려하세요. 최소한 다음 정보를 제공해야합니다.

  • 수행 할 계산 (더하기, 빼기, 이동, 비교)
  • 계산을 수행 할 값 ( 계산에 대한 입력)
  • 결과를 ​​넣을 위치 (계산의 출력)

예를 들어 상위 수준의 프로그램 문을 작성한 경우 X = Y + Z, 프로세서에게 Y와 Z에있는 값을 가져 와서 추가하고 결과를 X에 쓰도록 지시해야합니다.

누산기 아키텍처에서 대부분 계산 명령어는 누산기라는 특수 레지스터에서 작동합니다. 따라서 대부분의 작업에는 명령어에 대한 암시 적 인수로 누산기가 있습니다. 누산기는 명령어에 대한 입력을 제공하거나 명령어에서 출력을 수신하거나 둘 다 제공합니다. 누산기 기반 컴퓨터에서 X = Y + Z를 수행하는 경우 명령어 시퀀스는 대략 다음과 같습니다.

  • Y를 누산기에로드
  • 누산기에 Z 추가
  • X에 누산기 저장

“I = J + K + L + M + N + O “, 시퀀스는 다음과 같을 수 있습니다.

  • 누산기에 J로드
  • 누산기에 K 추가
  • 누산기
  • 누산기에 M 추가
  • 누산기에 N 추가
  • 누산기에 O 추가
  • I에 누산기 저장
  • li>

대부분의 작업에는 누산기가 포함되어 있으므로이를 지정하기 위해 opcode 비트를 전용 할 필요가 없습니다. 앞서 언급했듯이 누산기는 입니다. 또한 기계 자체에서 어큐뮬레이터를 산술 단위 자체에 직접 구축하여 하드웨어를 단순화 할 수 있습니다.

범용 레지스터 아키텍처에서 명령어를 계산합니다. s는 값을 읽을 레지스터를 지정하기 위해 여러 인수를 사용합니다. 이것은 그들을 더 유연하게 만듭니다. 그러나 유연성에는 비용이 따릅니다. 작동 할 레지스터를 지정하려면 더 많은 opcode 비트가 필요하고 모든 레지스터에 대한 경로를 산술 단위에 제공해야합니다.

위의 예제 표현식의 경우 , 코드는 크게 다르지 않습니다.

  • Y를 레지스터 R0에로드
  • Z를 레지스터 R1에로드
  • R0을 R1에 추가하고 R2의 결과
  • R2를 X에 저장

범용 레지스터 시스템은 여러 작업에서 레지스터에 값을 유지할 수있을 때 이점을 보여주기 시작합니다. 예를 들어 약간 더 복잡한 프로그램을 실행하고 싶다고 가정 해 보겠습니다.

X = A + B

Y = A - B

누산기 머신에서 두 작업 모두에 대해 A와 B를 다시로드해야합니다. 범용 머신에서는 A와 B를 한 번만로드합니다.

범용 레지스터 머신에는 여러 가지 유형도 있습니다. (이 목록은 완전하지 않으며 일부 아키텍처는 이러한 개념을 혼합합니다. )

  • Register-Memory : 하나의 피연산자는 레지스터에서 가져오고 하나의 피연산자는 메모리에서 가져옵니다.
  • Register-Register, 2-address : 두 피연산자는 레지스터에서 가져 오지만 결과는 입력 중 하나를 덮어 써야합니다.
  • Register-Register, 3-address : 두 피연산자는 모두에서 가져옵니다. 예를 들어 x86 프로세서는 2 주소 레지스터-레지스터 명령도 제공하는 레지스터 메모리 시스템입니다.

예를 들어, x86 프로세서는 레지스터 메모리 시스템입니다. 대부분의 RISC 기계는 별도의로드 / 저장 명령이있는 3- 주소 등록-등록 기계입니다. 둘 다 범용 레지스터 머신입니다.

누산기 머신 인 6502 와 비교하세요. 대부분의 산술 (더하기, 빼기, 회전 및 이동)은 A 레지스터에서 작동합니다. 다른 두 레지스터 인 X와 Y는 증가, 감소 및 비교 만 지원합니다. “주로 메모리 및 루프 카운터 색인화에 사용됩니다.

당신이 언급하지 않은 세 번째 아키텍처 유형은 스택 아키텍처 입니다. 스택 아키텍처는 모든 계산이 단일 지점에 집중된다는 점에서 누산기 아키텍처와 유사합니다. 차이점은 스택 아키텍처는 항상 스택에서 인수를 읽고 결과를 항상 스택에 저장한다는 것입니다.컴퓨팅 명령어의 입력 모두 암시 적입니다. 그런 다음 다른 명령은 값을 스택으로 푸시하고 값을 가져 오는 것을 관리해야합니다.

실제 칩에서 많은 스택 아키텍처를 찾을 수는 없지만 인터프리터 (예 : Java 바이트 코드)에서 많이 사용됩니다. , 또는 FORTH) 및 HP의 RPN 기반 계산기와 같은 특정 계산기에서.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다