현재 위치 - 회사기업대전 - 중국 기업 정보 - ARM7, ARM9 및 ARM11 의 차이점 ARM 프로세서 분석

ARM7, ARM9 및 ARM11 의 차이점 ARM 프로세서 분석

ARM7, ARM9 및 ARM11 의 차이점 ARM 프로세서 구문 분석

ARM7 은 funnoy 느린 구조, 3 단계 파이프 라인 구조

ARM9, ARM11 입니다

ARM9 와 ARM11 은 대부분 메모리 관리자가 있어 운영 체제를 좀 더 잘 달리고 ARM7 은 벌거벗은 달리기에 적합하다.

ARM9 시리즈에는 ARM9 와 ARM9E 시리즈가 있습니다. 여기서 ARM9 는 ARM v4T 아키텍처에 속하고 ARM9TDMI 및 ARM922T; 와 같은 일반적인 프로세서입니다. ARM9E 는 ARM926EJ 및 ARM946E 와 같은 일반적인 프로세서인 ARM v5TE 아키텍처입니다. 후자의 칩 수와 적용이 더 넓기 때문에 ARM9 는 ARM9E 시리즈 프로세서 (주로 ARM926EJ 와 ARM946E) 를 더 많이 언급합니다. ARM9 에 대한 다음 소개도 ARM9E 에 더 집중되어 있습니다.

ARM7 프로세서와 ARM9E 프로세서의 파이프라인 차이

임베디드 시스템 설계자에게 하드웨어는 일반적으로 가장 중요한 요소입니다. 프로세서의 경우, 파이프 라인은 하드웨어 차이의 가장 분명한 표시이며, 파이프 라인 설계에 따라 일련의 하드웨어 차이가 발생합니다. ARM7 과 ARM9E 의 조립 라인을 비교해 보겠습니다.

< P > < P > ARM9E 는 ARM7 의 레벨 3 조립 라인에서 레벨 5 로 증가했습니다. ARM9e 의 조립 라인에는 더 많은 논리 작업이 포함되어 있지만 각 레벨의 논리 작업은 더 간단합니다. 예를 들어, ARM7 의 3 차 흐르는 물은 먼저 레지스터를 내부적으로 읽은 다음 관련 논리 및 산술 연산을 수행한 다음 결과 다시 쓰기를 처리하여 매우 복잡한 동작을 수행해야 합니다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 성공명언) ARM9E 의 레벨 5 유류에서는 레지스터 읽기, 논리 연산, 결과 다시 쓰기가 서로 다른 유수에 분산되어 각 레벨 유수 처리의 동작이 매우 간결하다. 따라서 프로세서의 클럭 속도가 크게 향상될 수 있습니다. 각 등급의 흐르는 물은 CPU 의 클럭 주기에 해당하기 때문에, 1 급 흐르는 물의 논리가 너무 복잡하여 실행 시간이 높아지면 필요한 클럭 주기가 길어져 CPU 의 클럭 속도가 향상되지 않을 수 있습니다. 따라서 조립 라인의 길이는 CPU 클럭 속도의 향상에 도움이 됩니다. 일반적으로 사용되는 칩 생산 공정에서 ARM7 은 일반적으로 100MHz 에서 작동하며 ARM9E 는 최소 200MHz 이상에서 작동합니다.

ARM9E 프로세서의 스토리지 하위 시스템

가장 일반적인 두 ARM9E 프로세서인 ARM926EJ 및 ARM946E 에는 시스템 성능을 향상시키고 대규모 운영 체제를 지원하는 스토리지 하위 시스템이 있습니다. 그림 2 와 같이 스토리지 하위 시스템에는 MMU (스토리지 스냅인) 또는 MPU (스토리지 보호 장치), 캐시 (캐시) 및 쓰기 버퍼 (Cache Buffer) 가 포함되어 있습니다. CPU 는 하위 시스템을 통해 시스템 스토리지 시스템에 연결됩니다.

캐시 및 쓰기 캐시의 도입은 프로세서 속도가 스토리지 액세스 속도보다 훨씬 빠르다는 사실을 바탕으로 합니다. 스토리지 액세스가 시스템 성능의 병목 현상이 되면 프로세서가 더 빨리 실행되는 것도 낭비가 됩니다. 프로세서가 스토리지를 기다리는 데 많은 시간이 걸리기 때문입니다. 캐시는 가장 최근에 자주 사용된 코드와 데이터를 저장하여 가장 빠른 속도로 CPU 처리를 제공하는 문제를 해결하는 데 사용됩니다 (CPU 액세스 캐시는 기다릴 필요가 없음).

복잡한 프로세서 내부의 스토리지 하위 시스템.

MMU 는 최신 플랫폼 운영체제 메모리 관리의 요구를 충족하는 스토리지 관리를 지원하는 하드웨어 장치입니다. 여기에는 주로 가상/물리적 주소 매핑을 지원하는 기능과 서로 다른 스토리지 주소 공간을 제공하는 보호 메커니즘의 두 가지 기능이 포함되어 있습니다.

간단한 예는 MMU 의 기능을 이해하는 데 도움이 될 수 있습니다.

< P > 하나의 운영 체제에서 프로그램 개발자는 운영 체제에 지정된 API 및 프로그래밍 모델로 프로그램을 개발합니다. 운영 체제는 일반적으로 사용자에게 지정된 하나의 스토리지 주소 공간만 개방합니다. 이로 인해 모든 어플리케이션이 동일한 스토리지 주소 공간을 사용하는 직접적인 문제가 발생합니다. 이러한 프로그램이 동시에 시작되면 (현재 멀티 태스킹 시스템에서 매우 흔함) 스토리지 액세스 충돌이 발생할 수 있습니다. 그럼 운영 체제는 어떻게 이 문제를 피할 수 있을까요?

운영 체제는 MMU 하드웨어 장치를 활용하여 스토리지 액세스 가상 주소를 물리적 주소로 변환합니다. 가상 주소란 프로그래머가 프로그램에서 사용하는 논리 주소이고 물리적 주소는 실제 스토리지 장치의 공간 주소입니다. MMU 는 특정 규칙을 통해 동일한 가상 주소를 다른 물리적 주소에 매핑할 수 있습니다. 이렇게 하면 동일한 가상 주소를 사용하는 여러 프로그램 프로세스가 시작되더라도 MMU 일정을 통해 시스템 오류 없이 다른 물리적 주소에 매핑할 수 있습니다.

MMU 의 기능 및 기능.

MMU 는 주소 매핑 기능을 처리하는 것 외에도 주소 공간마다 다른 액세스 속성을 설정할 수 있습니다. 예를 들어, 운영 체제는 자신의 커널 프로그램 주소 공간을 사용자 모드에서 액세스할 수 없도록 설정하여 사용자 응용 프로그램이 해당 공간에 액세스할 수 없도록 하여 운영 체제 커널의 보안을 보장합니다. MPU 와 MMU 의 차이점은 주소 공간에 액세스 속성을 설정하는 기능만 있고 주소 매핑 기능은 없다는 것입니다.

< P > 캐시 및 MMU 와 같은 하드웨어 단위의 도입으로 시스템 프로그래머의 프로그래밍 모델에 많은 새로운 변화가 생겼습니다. 기본 개념과 사용 방법을 숙지해야 하는 것 외에도 시스템에 최적화된 몇 가지 점이 흥미롭고 중요합니다.

1, 시스템 실시간 고려 사항

주소 맵핑 규칙을 저장하는 페이지 테이블 (페이지 테이블) 이 매우 크기 때문에 일반적으로 Mme 입니다 새 주소 매핑 규칙을 호출할 때 MMU 는 페이지 테이블을 업데이트하기 위해 기본 스토리지를 읽어야 할 수 있습니다. 이로 인해 경우에 따라 시스템의 실시간 손실이 발생할 수 있습니다. 예를 들어, 중요한 프로그램 코드를 실행해야 할 때, 공교롭게도 이 코드가 현재 MMU 의 페이지 테이블 처리 범위 내에 있지 않은 주소 공간을 사용하는 경우, MMU 는 먼저 페이지 테이블을 업데이트한 다음 주소 매핑을 완료해야 해당 스토리지에 액세스할 수 있습니다. 전체 주소 디코딩 과정은 매우 길어서 실시간성에 매우 큰 악영향을 미친다. 그래서 일반적으로 MMU 와 Cache 가 있는 시스템은 실시간으로는 단순한 프로세서보다 못하다. 하지만 이러한 시스템의 실시간 효율성을 높이는 데도 도움이 될 수 있는 몇 가지 방법이 있습니다.

한 가지 쉬운 방법은 필요할 때 MMU 와 Cache 를 끄는 것입니다. 이렇게 하면 간단한 프로세서가 되어 시스템 실시간 성능을 즉시 향상시킬 수 있습니다. 물론 많은 경우 이것은 가능하지 않습니다. ARM 의 MMU 와 Cache 디자인에는 잠긴 기능이 있습니다. 즉, MMU 에서 페이지 테이블이 업데이트되지 않도록 지정할 수 있고, 코드나 데이터를 새로 고치지 않고 캐시에서 잠글 수 있습니다. 프로그래머는 실시간 요구 사항이 가장 높은 코드를 지원하기 위해 이 기능을 사용하여 이러한 코드가 항상 가장 빠른 응답과 지원을 받을 수 있도록 할 수 있습니다.

2, 시스템 소프트웨어 최적화

임베디드 시스템 개발에서 많은 시스템 소프트웨어 최적화 방법은 동일하고 일반적이며 대부분의 경우 ARM9E 아키텍처에도 적용됩니다. 이미 ARM7 의 프로그래밍 전문가라면, 이전에 파악한 최적화 방법은 새로운 ARM9E 플랫폼에서 완전히 사용할 수 있지만, 몇 가지 새로운 기능을 통해 더욱 주의를 기울여야 합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 예술명언) 가장 중요한 것은 캐시의 역할이다. 캐시 자체는 프로그래밍 모델과 인터페이스의 변화를 가져오지 않지만, 캐시의 행동을 살펴보면 소프트웨어 최적화에 큰 영향을 미친다는 것을 알 수 있다.

캐시는 물리적으로 고속 SRAM 이고 ARM9E 의 Cache 조직 폭 (cache line) 은 모두 4 개의 word (32 바이트) 입니다. Cache 의 동작은 프로그래머가 아닌 시스템 컨트롤러에 의해 제어되며, 시스템 컨트롤러는 최근 액세스한 메모리 주소 근처의 내용을 Cache 로 복사하여 CPU 가 다음 스토리지 장치에 액세스할 때 (이 액세스는 손가락일 수도 있고 데이터일 수도 있음) 이 스토리지 장치의 내용이 이미 Cache 에 있을 수도 있으므로 CPU 는 실제로 주 스토리지에 가서 내용을 읽을 필요가 없습니다. Cache 의 작동 원리에서 볼 수 있듯이, Cache 의 일정은 확률에 기반을 두고 있으며, CPU 가 액세스할 데이터는 이미 Cache (Cache hit) 에 존재하거나 존재하지 않을 수 있습니다 (Cache miss). Cache miss 의 경우 CPU 는 Cache 가 없는 경우보다 메모리에 더 빠르게 액세스할 수 있습니다. CPU 는 스토리지에서 데이터에 액세스하는 것 외에도 Cache hit 또는 miss 판단, Cache 컨텐츠 새로 고침 등의 작업을 처리해야 하기 때문입니다. Cache hit 의 이점이 Cache miss 의 희생보다 클 때만 시스템의 전체 성능이 향상되므로 Cache 의 적중률은 매우 중요한 최적화 지표가 됩니다.

캐시 동작의 특성에 따라 가능한 한 기능 관련 코드와 데이터를 함께 배치하여 점프 횟수를 줄이는 등 캐시 적중률을 높이는 몇 가지 방법을 시각적으로 얻을 수 있습니다. 점프는 종종 캐시 미스를 유발한다. 적절한 함수 크기를 유지하고 너무 작은 함수 본문을 너무 많이 쓰지 마십시오. 선형 프로그램 실행 프로세스가 가장 Cache 친화적이기 때문입니다. 순환체는 4 개의 word 정렬 주소에 배치하는 것이 가장 좋습니다. 이렇게 하면 순환체가 Cache 에서 행으로 정렬되고, 최소한의 캐시 행 수를 차지하여 여러 번 호출된 순환체가 더 효율적으로 실행될 수 있습니다.

성능 및 효율성 향상

이전에 ARM9E 가 ARM7 보다 향상된 성능은 ARM9E 가 더 빠른 클럭 속도와 더 많은 하드웨어 기능을 가지고 있을 뿐만 아니라 특정 명령의 실행 효율성에도 반영되어 있습니다. 실행 효율성 CPU 의 클럭 주기 수 (Cycle) 로 측정할 수 있습니다. 동일한 프로그램을 실행하면 ARM9E 의 프로세서는 ARM7 보다 약 30 의 클럭 주기를 절약할 수 있습니다.

효율성 향상은 주로 ARM9E 의 Load-Store 명령 실행 효율성 향상으로 인한 것입니다. RISC 아키텍처 프로세서에서 약 30 개의 명령어가 로드-스토어 명령이라는 것을 알고 있습니다. 이러한 명령어의 효율성은 시스템 효율성에 가장 큰 기여를 합니다. ARM9E 에는 Load-Store 지시문의 효율성을 높이는 데 도움이 되는 두 가지 요소가 있습니다.

1)ARM9 커널은 별도의 지시문과 데이터 버스를 갖춘 하버드 아키텍처입니다. 이에 따라 ARM7 커널은 명령어와 데이터 버스 재사용의 폰입니까? 노이만 아키텍처.

2)ARM9 의 레벨 5 파이프라인 설계는 스토리지 액세스와 레지스터 쓰기를 서로 다른 흐르는 물 위에 재생합니다.

명령 스트림 실행 중 각 CPU 클럭 주기가 하나의 Load 또는 Store 명령을 완료할 수 있도록 두 가지를 결합합니다. 아래 표는 ARM7 과 ARM9 프로세서 사이의 Load -Store 명령을 비교합니다. 모든 Store 명령 ARM9 는 ARM7 보다 1 주기를 절약하고, Load 명령은 2 주기를 절약할 수 있습니다 (인터록 없이 컴파일 도구는 컴파일 최적화를 통해 대부분의 인터록 가능성을 제거할 수 있음).

다양한 요소를 결합하여 ARM9E 프로세서는 매우 강력한 성능을 제공합니다.

그러나 실제 시스템 설계에서 디자이너가 항상 프로세서 성능을 최대화하는 것은 아닙니다. 프로세서와 시스템 작동 주파수를 낮춰 애플리케이션 요구 사항을 충족하는 것이 이상적입니다. 전력 소비량 및 비용 절감 목표를 달성하다. DMIPS 지표는 시스템이 제공할 수 있는 프로세서 기능을 평가하는 과정에서 많은 사람들이 채택하고 있습니다. 또한 프로세서 간 성능 비교에도 널리 사용됩니다.

그러나 DMIPS 를 사용하여 프로세서 성능을 측정하는 데는 큰 결함이 있습니다. DMIPS 는 문자 그대로 초당 백만 개의 명령을 의미하는 것이 아니라, Dhrystone 이라는 테스트 프로그램을 실행할 때 CPU 가 나타내는 상대적 성능의 높낮이를 측정하는 단위입니다 (많은 경우 MIPS 를 이 성능 지표의 단위로 사용하는 경우가 많습니다). 프로그램 기반 테스트는 악의적인 최적화에 취약하고 DMIPS 지표 값 게시는 어떤 기관의 감독을 받지 않기 때문에 DMIPS 를 사용하여 평가할 때 신중해야 합니다. 예를 들어, Dhrystone 테스트 프로그램을 다르게 컴파일하면 동일한 프로세서에서 실행해도 그림 4 에서 ARM926EJ 가 32 비트 0 대기 스토리지에서 테스트 프로그램을 실행한 결과와 같이 매우 다른 결과를 얻을 수 있습니다. ARM 은 항상 비교적 보수적인 값을 CPU 의 DMIPS 공칭 값으로 사용했습니다. 예를 들어 ARM926EJ 는 1.1DMPS/MHz 입니다.

그림 4: 다양한 테스트 조건에서 ARM926EJ 프로세서의 DMIPS 값.

DMIPS 의 또 다른 단점은 프로세서의 디지털 신호 처리 능력과 캐시/MMU 하위 시스템의 성능을 측정할 수 없다는 것입니다. Dhrystone 테스트 프로그램에는 DSP 표현식이 포함되어 있지 않고 일부 정수 연산과 문자열 처리만 포함되어 있고 테스트 프로그램이 작기 때문에 외부 스토리지와 상호 작용하지 않고 거의 완벽하게 캐시 안에 배치할 수 있습니다. 실제 시스템에서 프로세서의 실제 성능을 반영하기가 어렵습니다.

격려적인 평가 방법은 CPU 자체에만 얽매이는 것이 아니라 시스템 관점에서 문제를 보는 것입니다. 시스템 성능 평가에 가장 적합한 테스트 벡터는 사용자 어플리케이션 또는 유사한 테스트 프로그램이며, 이는 사용자가 필요로 하는 가장 현실적인 결과입니다.

ARM9E 프로세서의 DSP 컴퓨팅 성능

는 멀티미디어, 오디오 및 비디오 기능과 같은 애플리케이션의 다양성과 복잡성을 수반합니다. 임베디드 시스템에서도 전반적으로 꽃이 피었습니다. 이러한 응용 프로그램에는 상당한 DSP 처리 능력이 필요합니다. 기존 RISC 아키텍처에서 이러한 알고리즘을 구현한다면 필요한 자원 (주파수, 스토리지 등) 이 매우 비경제적일 수 있습니다. ARM9E 프로세서의 중요한 장점 중 하나는 아주 작은 비용 (CPU 추가 기능은 하드웨어 추가 필요) 으로 매우 유용한 DSP 성능을 대체하는 가벼운 DSP 처리 능력을 갖추고 있다는 것입니다.

CPU 의 DSP 기능은 DMIPS 와 같은 벤치마크에 직접 반영되지 않으며 이전 ARM7 프로세서에서도 유사한 개념이 없기 때문입니다. 따라서 이 점은 ARM9E 프로세서를 사용하여 개발하는 모든 사람들에게 주의해야 할 중요한 사항입니다.

ARM9E 에 대한 DSP 확장 명령은 표 2 에 나와 있으며 주로 세 가지 유형으로 구성됩니다.

1) 단일 사이클 16x16 및 32x16 MAC 작업은 디지털 신호 처리에서 32 비트 폭의 피연산자가 거의 없기 때문에 32 비트 레지스터에서 피연산자 세그먼트 연산에 유용합니다.

2) 기존 산술 연산 명령에 포화 처리 확장을 추가합니다. 포화 연산이라고 합니다. 즉, 계산 결과가 하나 이상의 상한보다 크거나 하한보다 작을 경우 결과는 상한 또는 하한과 같습니다. 포화 처리는 오디오 데이터 및 비디오 픽셀 처리에 널리 사용되며, 이제 단일 사이클 포화 연산 명령으로 일반 RISC 명령 "연산-판단-값" 을 수행할 수 있습니다.

3) 선행 0 (CLZ) 연산 명령은 정규화 및 부동 소수점 연산과 나누기 작업 성능을 향상시킵니다.

널리 사용되는 MP3 디코딩 프로그램을 예로 들어 보겠습니다.

전체 디코딩 중 프런트엔드의 세 단계는 비트스트림의 읽기 (압축 해제), 호프만 디코딩, 역양자화 샘플링 (역변환) 등 가장 많은 연산을 수행합니다. ARM9E 의 DSP 명령은 이러한 연산을 효율적으로 수행할 수 있습니다. 44.1 KHz@128 kbps 비트율의 MP3 음악 파일을 예로 들자면, ARM7TDMI 는 20MHz 이상의 자원을 필요로 하는 반면, ARM926EJ 는 10MHz 미만의 자원만 있으면

ARM7 에서 ARM9 로의 플랫폼 전환 과정에서 매우 중요한 한 가지가 있다. 그리고 개발자가 직면한 프로그래밍 모델과 아키텍처 기반도 일치한다. 하지만 ARM9E 에는 새로운 기능이 많이 추가되어 있습니다. 이러한 새로운 자원을 최대한 활용하고 시스템 성능을 최적화하기 위해서는 ARM9E 에 대해 더 자세히 알아야 합니다.

copyright 2024회사기업대전