니오스 2세
Nios II| 디자이너 | 알테라 |
|---|---|
| 비트 | 32비트 |
| 설계. | RISC |
| 엔디안니스 | 리틀 엔디언 |
| 열다. | 아니요. |
| 레지스터 | |
| 범용 | 32 |
Nios II는 필드 프로그래머블 게이트 어레이(FPGA) 집적회로의 Altera 패밀리용으로 특별히 설계된 32비트 임베디드 프로세서 아키텍처입니다.Nios II는 기존의 Nios 아키텍처에 비해 많은 확장 기능을 갖추고 있어 디지털 신호 처리(DSP)에서 시스템 제어까지 광범위한 임베디드 컴퓨팅 애플리케이션에 적합합니다.
Nios II는 2000년에 [1]도입된 Altera 최초의 구성 가능한 16비트 임베디드 프로세서 Nios의 후속 모델입니다.
주요 기능
원래의 Nios와 같이, Nios II 아키텍처는 RISC 소프트 코어 아키텍처로, Altera FPGA의 프로그램 가능한 로직과 메모리 블록에 모두 실장되어 있습니다.이전 버전과 달리 풀 32비트 설계입니다.
- 32개의 범용 32비트 레지스터,
- 완전한 32비트 명령어 세트, 데이터 경로 및 주소 공간,
- 단일 명령 32 × 32는 곱셈 및 나눗셈하여 32비트 결과를 생성한다.
Nios II 프로세서의 소프트코어 특성으로 시스템 설계자는 자신의 특정 애플리케이션 요건에 맞게 커스텀 Nios II 코어를 지정 및 생성할 수 있습니다.시스템 설계자는 사전 정의된 메모리 관리 유닛을 추가하거나 커스텀 명령 및 커스텀 주변기기를 정의함으로써 Nios II의 기본 기능을 확장할 수 있습니다.
커스텀 순서
네이티브 Nios II 명령과 마찬가지로 사용자 정의 명령에서는 최대 2개의 32비트 소스 레지스터에서 값을 받아 들여 32비트 수신처 레지스터에 결과를 쓸 수도 있습니다.커스텀 명령어를 사용함으로써 시스템 설계자는 퍼포먼스 목표를 달성하기 위해 시스템 하드웨어를 미세 조정할 수 있으며 설계자는 C의 매크로로서 명령을 쉽게 처리할 수 있다.
커스텀 주변기기
코드의 특정 섹션을 실행하는 데 대부분의 CPU 사이클을 소비하는 퍼포먼스 크리티컬 시스템에서는 사용자 정의 주변기기가 잠재적으로 소프트웨어 알고리즘 실행의 일부 또는 전부를 사용자 정의 하드웨어 로직으로 오프로드하여 전력 효율 또는 애플리케이션 스루풋을 향상시킬 수 있습니다.
메모리 관리 유닛
Quartus 8.0에서 도입된 옵션 MMU를 통해 Nios II는 Linux 커널 등의 하드웨어 기반 페이징 및 보호를 필요로 하는 운영 체제를 실행할 수 있습니다.MMU가 없는 경우 Nios는 단순화된 보호 및 가상 메모리 모델(예: Clinux 및 FreeRTOS)을 사용하는 운영체제로 제한됩니다.
메모리 보호 장치
Quartus 8.0에서 도입된 옵션 MPU는 MMU와 유사한 메모리 보호 기능을 제공하지만 프로그래밍 모델이 단순하고 MMU와 관련된 성능 오버헤드가 없습니다.
Nios II CPU 패밀리
Nios II Classic은 3가지 구성으로 제공됩니다.Nios II/f(고속), Nios II/s(표준), 및 Nios II/e(경제).Nios II gen2는 다음 2가지 구성으로 제공됩니다.Nios II/f(고속) 및 Nios II/e(경제)입니다.
니오스 II/f
Nios II/f 코어는 코어 크기를 희생하면서 최대의 성능을 발휘하도록 설계되었습니다.Nios II/f의 특징은 다음과 같습니다.
- 명령 캐시와 데이터 캐시 분리(512B~64KB)
- MMU 또는 MPU(옵션)
- 최대 2GB의 외부 주소 공간에 액세스 가능
- 명령 및 데이터용으로 긴밀하게 결합된 메모리(옵션)
- 최대 DMIPS/MHz를 실현하는 6단계 파이프라인
- 단일 사이클 하드웨어 멀티플 및 배럴 시프터
- 옵션인 하드웨어 분할 옵션)
- 동적 분기 예측
- 최대 256개의 커스텀 명령과 무제한 하드웨어 액셀러레이터
- JTAG 디버깅모듈
- 하드웨어 중단점, 데이터 트리거, 실시간트레이스 등 옵션 JTAG 디버깅모듈 확장
Nios II/s
Nios II/s 코어는 퍼포먼스와 비용의 균형을 유지하도록 설계되어 있습니다.Nios II/s의 특징은 다음과 같습니다.
- 명령 캐시
- 최대 2GB의 외부 주소 공간
- 순서용으로 긴밀하게 결합된 메모리(옵션)
- 5단 파이프라인
- 정적 분기 예측
- 하드웨어 다중, 분할 및 시프트 옵션
- 최대 256개의 커스텀 명령
- JTAG 디버깅모듈
- 하드웨어 중단점, 데이터 트리거, 실시간트레이스 등 옵션 JTAG 디버깅모듈 확장
Nios II/e
Nios II/e 코어는 FPGA의 로직 사용률을 최소화하도록 설계되었습니다.이는 저비용 사이클론 II FPGA 애플리케이션에 특히 효율적입니다.Nios II/e의 특징은 다음과 같습니다.
Avalon 스위치패브릭 인터페이스
Nios II는 내장된 주변기기에 대한 인터페이스로 Avalon 스위치패브릭을 사용합니다.한 번에 하나의 버스 마스터만 버스에 액세스할 수 있는 프로세서 기반 시스템의 기존 버스에 비해, 아발론 스위치 패브릭은 슬레이브 측 조정 방식을 사용하여 여러 마스터를 동시에 작동할 수 있습니다.
개발 프로세스
Nios II의 개발은 하드웨어 생성과 소프트웨어 생성의 두 가지 단계로 구성됩니다.
개발은 Embedded Design Suite(EDS)라고 불리는 Altera 응용 프로그램에서 호스팅됩니다.EDS에는 하드웨어와 소프트웨어를 모두 다음 두 단계로 관리할 수 있는 완전한 통합 개발 환경이 포함되어 있습니다.
하드웨어 생성 프로세스
Nios II 하드웨어 설계자는 Quartus-II 패키지의 컴포넌트인 Qsys 시스템 통합 도구를 사용하여 Nios 시스템을 구성하고 생성합니다.구성 그래피컬 유저 인터페이스(GUI)를 사용하면, Nios-II 의 기능 세트를 선택해, 주변 기기나 I/O 블록(타이머, 메모리 컨트롤러, 시리얼 인터페이스 등)을 임베디드 시스템에 추가할 수 있습니다.하드웨어 사양이 완료되면 Quartus-II는 합성, 배치 및 경로를 수행하여 선택된 FPGA 타깃에 시스템 전체를 구현합니다.
Qsys는 Nios II 시스템 구축에도 사용될 수 있는 오래된 SOPC(System-on-a-Programmable-Chip) 빌더를 대체하여 새로운 프로젝트에 [2]권장되고 있습니다.
소프트웨어 생성 프로세스
EDS(Embedded Design Suite)라는 별도의 패키지가 소프트웨어 개발을 관리합니다.ECS는 Eclipse IDE를 기반으로 C/C++ 컴파일러(GNU 툴체인에 기반), 디버거 및 명령 집합 시뮬레이터를 포함합니다.EDS를 사용하면 프로그래머는 시뮬레이션을 통해 응용 프로그램을 테스트하거나 컴파일된 응용 프로그램을 실제 FPGA 호스트에서 다운로드하여 실행할 수 있습니다.
C/C++ 개발 체인은 GCC를 기반으로 하기 때문에 Linux용 오픈소스 소프트웨어의 대부분은 최소한의 수정이나 수정 없이 컴파일 및 실행됩니다.서드파티제의 operating·시스템도, Nios II 에 이식되고 있습니다.여기에는 Micrium MicroC/OS-II, eCos, Seger Microcontroller embOS, ChibiOS/RT, μCLinux 및 FreeRTOS가 포함됩니다.
라이선스
Nios II는 FPGA의 Xilinx 패밀리의 경쟁 소프트코어 CPU인 MicroBlaze에 필적합니다.MicroBlaze와 달리 Nios II는 서드파티 IP 프로바이더 Synopsys Designware를 통해 표준 셀 ASIC에 대한 라이센스를 받을 수 있습니다.Designware 라이선스를 통해 설계자는 FPGA 플랫폼에서 양산형 ASIC 장치로 Nios 기반 설계를 이식할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Altera. "Nios II Embedded Processor Backgrounder" (PDF).
- ^ "5 Reasons to Switch from SOPC Builder to Qsys". Altera. Retrieved 16 March 2012.