마이크로 컨트롤러 / 마이크로 프로세서 및 다른 비트 버전, 차이점은 무엇입니까?


20

일반적인 공학 애호가로서 저는 매일 마이크로 컨트롤러의 세계에 대해 더 많이 배우고 있습니다. 일단 이해하지 못하는 것은 마이크로 컨트롤러의 비트 버전의 중요성입니다.

나는 몇 달 동안 ATmega8을 사용해 왔으며 내 목적에 잘 작동하는 것 같습니다. 클럭 속도, 메모리, IO 핀 수, 통신 버스 유형 등이 하나의 마이크로 컨트롤러를 다른 컨트롤러와 어떻게 차별화하는지 알고 있습니다. 그러나 나는 8 비트 대 16 비트 대 32 비트의 중요성을 잘 이해하지 못합니다. 비트 버전이 높을수록 장치가 더 큰 숫자를 저장할 수 있다는 것을 이해하지만, 이것이 내 결정에 어떤 영향을 줍니까? 가상 시나리오에서 제품을 설계하는 경우 8 비트 프로세서가 단순히하지 않을 것이며 더 높은 것이 필요하다고 결정합니다.

ATmega8의 이론적 인 32 비트 변형 (다른 모든 것들이 동일)이 8 비트 버전보다 우수하다고 믿을만한 이유가 있습니까 (그러한 장치가 가능하다면)?

나는 말도 안되는 말일지도 모르지만, 이것이 혼동의 결과라고 생각합니다.


답변:


24

저장할 수있는 너비가 아니라 단일 작업에서 사용할 수있는 너비입니다. 관습 적으로 (그러나 반드시 그런 것은 아님) 네이티브 메모리 어드레싱의 너비와 상관 관계가 있으므로 세그먼테이션 또는 뱅크 스위칭과 같은 추악한 해결 방법없이 쉽게 매핑 할 수있는 스토리지 양이 있습니다.

오늘날의 32 비트 코어는 레거시 시스템, 극단적 인 볼륨 및 가격 압력을 가진 응용 프로그램을 제외하고는 대부분의 측면에서 유연성 (플렉시블 메모리, 플랫 메모리 모델 및 성능)에서 8- 디자인보다 우수합니다. 코어 폭보다 칩 메모리 크기) 및 프로세스 / 밀도의 부작용. 후자는 5v 작동과 같은 것을 제공하거나 CPU 설계 자체에 논리 오류가 없음을 증명하려는 경우 더 큰 방사선 경도 또는 단순 이점을 제공 할 수 있습니다. 많은 애호가들에게 가치의 최종 프로세스 / 연령 부작용은 DIP 패키지의 8 비트 코어가 일반적이지만 이러한 패키지의 32 비트 디바이스는 드물다는 것입니다 (존재하더라도).


3
단일 작업에서 처리 할 수있는 너비는 프로그램의 비동기 부분을 동기화 할 때 중요 할 수 있습니다. 8 비트 마이크로에서 16 비트 값을 원자 적으로 읽어야하는 경우 ISR 응답 시간을 낮게 유지하지 않으려면 먼저 인터럽트를 비활성화해야합니다.
ndim

일부 8 비트 마이크로가 ARM (가장 인기있는 32 비트 아키텍처)보다 우수 할 수있는 또 다른 특성은 I / O 비트 트위들 링입니다. PIC 18Fxx (8 비트)는 레지스터의 내용에 관계없이 단일 명령어로 I / O 공간의 모든 비트를 설정하거나 지울 수 있지만 ARM에는 일반적으로 다단계 프로세스가 필요합니다. ARM 칩은 현재 사용 가능한 PIC 칩 (Scenix에서 사용 가능한 일부 작은 100MHz PIC 호환 칩이지만 초당 중단 된 것으로 생각됨)보다 초당 더 많은 명령을 실행할 수 있지만 사용 가능한 PIC조차도 여전히 일종의 비트 뱅킹을 수행 할 수 있습니다 빨리.
supercat

1
보편적이지 않지만 일부 ARM 디바이스에는 개별 GPIO 비트를 설정하거나 지우기 위해 작성할 수있는 GPIOx_BSRR / GPIOx_BRR 레지스터와 같은 기능이 있습니다.
Chris Stratton

8

비트 값은 데이터 버스 또는 데이터 파이프 크기입니다. 즉, 8 비트 MCU는 (대부분의 경우) 각 클럭주기마다 0에서 255 사이의 값으로 만 작동 할 수 있습니다. 프로세서에는 8 개의 디지털 라인이 병렬로 있다고 생각하십시오. 그리고 16 비트에는 16 개의 라인이 있고 32 비트에는 32 개의 라인이 있습니다. 따라서 각 클럭 사이클마다이 데이터 라인을 읽으며 라인이 많을수록 클럭 사이클 당 작업 할 수있는 값이 높아집니다.

28256

21665,536

2324,294,967,296

더 큰 데이터 버스는 또한 프로세서가 더 큰 메모리 주소에 액세스 할 수 있도록합니다.

이것은 수학 연산 중에 큰 차이를 만듭니다. 16 비트 숫자는 8 비트 숫자보다 훨씬 더 정밀합니다. 16 비트 마이크로 컨트롤러는 8 비트보다 긴 숫자에서 수학 연산을 처리하는 데 더 효율적입니다. 16 비트 마이크로 컨트롤러는 정수의 일반적인 정의와 같이 두 개의 16 비트 숫자에서 자동으로 작동 할 수 있습니다. 그러나 8 비트 마이크로 컨트롤러를 사용하는 경우 프로세스가 간단하지 않습니다. 이러한 숫자로 작동하도록 구현 된 기능에는 추가주기가 필요합니다. 응용 프로그램을 얼마나 집중적으로 처리하는지와 계산 횟수에 따라 회로 성능에 영향을 줄 수 있습니다.

8 비트와 16 비트 마이크로 컨트롤러의 차이점

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