Download presentation
Presentation is loading. Please wait.
1
DSP와 TMS320F28x의 이해
2
Contents 1. TMS320C2000 2. TMS320F28X CPU 특징 3. TMS320F28X CPU 버스 구조
4. TMS320F28X CPU Memory 구조
3
DSP (Digital Signal Processor)
다양한 신호 처리 및 고속 연산에 유리하도록 특별이 제작한 프로세서로 하드웨어 적으로 부동소수점(floating point)을 연산하거나 MAC(덧셈과 곱셈을 한 사이클에 수행) 연산기능, 빠른 외부 메모리 인터페이스 등이 특징이다. 영상 처리나 제어기의 동작에 있어 행렬 연산이 많이 필요로 하는 곳에 DSP의 특징을 두드러지게 나타난다.
4
DSP와 MCU DSP와 MCU DSP MCU
부동 소수점 연산기능 MAC 기능 다양한 부과 회로
5
TMS320C2000 C5000 계열 C6000 계열 C2000 계열 제어에 최적화된 DSP 다양한 모터 제어에 매우 유용
C24xx의 경우 40MIPS C28xx의 경우 150MIPS 모터 제어용 및 각종 제어기 구현용 빠른 동작 속도에 비해 낮은 전력 소모가 특징 최소 30MIPS ~ 600MIPS 가격 대비 성능이 무척 뛰어남 TI 사에서 제조하는 DSP 중에서 가장 고성능을 지닌 제품군 연산 속도 5000MIPS 내외 네트워크, 디지털 영상 처리에 적합한 구조
6
TMS320F28xx CPU 특징 TMS320F28xx CPU의 특징
High-Performance Static CMOS Technology 150 MHz(6.67-ns Cycle Time) Low-Power Design (1.8-V 1.9-V 3.3V I/O) JTAG Boundary Scan Support Advanced Emulation Features Analysis and Breakpoint Functions Real-Time Debug via Hardware JTAG : Joint Test Access Group, 반도체 테스트와 관련한 각종 기준으로 테스트와 에뮬레이션이 용이
7
TMS320F28xx CPU 특징 TMS320F28xx CPU의 특징
High-Performance 32-Bit CPU(TMS320C28x) 16*16 and 32*32 MAC Operations 16*16 Dual MAC Harvard Bus Architecture Unified Memory Programming Model Atomic Operations Fast Interrupt Response and Processing Code-Efficient (in C/C++ and Assembly) 선형 디지털 신호처리의 핵심 연산인 sum of product를 최고의 효율로 처리한다. 디지털 필터링, 컨볼류션, FFT등등… 변형된 하버드 구조 = C언어와의 효율을 높였다. 단일 메모리…단일 주소 체계를 사용하는 메모리 이를 Unified 메로리, Linear 메모리, 폰 노이만 메모리 등으로 부른다. 인터럽트 처리에 10~11사이클 소모 개별 인터럽트 총 96개
8
TMS320F28xx CPU 특징 TMS320F28xx CPU의 특징 On-Chip Memory
Flash Devices: Up to 128K * 16 Flash (Four 8K * 16 and Six 16K * 16 Sectors) ROM Devices: Up to 128 * 16 ROM 1K * 16 OTP ROM L0 and L1: 2 Blocks of 4K * 16 Each Single Access RAM(SARAM) H0: 1Block of 8K * 16 SARAM M0 and M1: 2 Blocks of 1K * 16 Each SARAM 플래시 메모리 API (application program interface)을 제공 1섹터 이상의 빈 공간이 있다면 동작중에 중요한 데이터등을 빈 섹터에 기록 할 수 있다. SARAM (single access RAM)
9
TMS320F28xx CPU 특징 TMS320F28xx CPU의 특징 Boot ROM (4K * 16)
With Software Boot Modes Standard Math Tables External Interface(2812) Up to 1M Total Memory Programmable Wait States Three Individual Chip Selects Clock and System Control Dynamic PLL Ratio Changes Supported On-Chip Oscillator Watchdog Timer Module PLL 0.5~10배까지 조절이 가능, 최종 클럭은 2분주되어 공급 Watchdog timer = 일종의 안전 장치로 주어진 시간안에 와츠독 타이머를 클리어 시키지 못하면 CPU를 리셋 이외에 32비트 CPU 타이머를 3개 가지고 있다.
10
TMS320F28X CPU 구조 TMS320F28X CPU 버스 구조 개량된 하버드 구조
프로그램 버스와 데이터 버스가 연결이 되어있다. 하버드 구조 = 어셈블리어에서 최고의 효율 하지만 C언어에서는 비효율적 메모리를 단일 구조를 채택하고 있다. C/C++ 언어의 효율을 극대화 하면서, 명령어 처리 효율을 극대화 한 구조라 볼 수 있다.
11
TMS320F28x CPU 구조 Atomic 명령어 처리 구조
메모리 맵형 레지스터(Memory Mapped Register : MMR)을 다루는 방식 깨어지지 않는다… DINT 인터럽트 해제… 코드1은 6사이클이 필요하다…비효율적이다. 인터럽트에 의해서 동작의 수행에 방해를 받을 수 있다. 코드2 2사이클
12
TMS320F28x CPU 구조 TMS320F28x의 내부 구조
그림3에서 보듯이 데이터 어드레스 버스는 총 32비트로 C28X CPU가 관장하는 최대 데이터 메모리는 4G Word에 달한다. 프로그램 어드레스 버스는 22비트로 총 4M Word를 관리할 수 있다. 참고로, 현재 출시된 TMS320C/F281X의 경우, 원가측면과 적용분야특성을 고려해서 최대 128KWord의 내부 플래시 메모리와 18KWord의 내부 램을 탑재하고 있으며, TMS320F2812의 경우 최대 4M Word의 외부 메모리를 탑재할 수 있다. 메모리 크기를 줄임으로써 원가도 줄이고 물리적인 칩 크기도 줄인 것이다.
13
TMS320F28x CPU 구조 TMS320F28x의 파이프라인 구조
F1, F2 : 명령어 주소, 내용 가져오기 (Fetch) D1 : 명령어 내용 해석하기(Decode) D2 : 오퍼랜드 주소 뽑아 내기 R1 : 오퍼랜드 주소 전달 하기(Read) R2 : 오퍼랜드 읽기 X : 명령어 실행 하기(Execution) W: 결과 저장 하기 (Write) 일반적으로 명령을 처리하기 위해서는 4단계를 걸쳐야 한다.(각각 2사이클) Fetch(명령어 이송) -> Decode(명령어 해석) -> Read(데이터 이송) -> Execution(명령어 실행) 파이프라인 깊어지면 간섭이라는 문제가 생긴다.. 그래서 이를 CPU에서 보호한다.
14
TMS320F28x CPU 구조 ALU와 MAC 그림 3에서 먼저 상단에 위치한 곱셈기의 구조를 보자. 곱셈기의 결과 담기는 P레지스터는 64비트가 아닌 32비트다. 32비트 곱셈의 결과는 32비트가 아닌 최대 64비트가 된다. 뭔가 이상하다. 그러나, 32비트 곱셈에서 발생한 64비트 결과는 어큐뮬레이터(ACC)와 P 레지스터에 각각 32비트씩 나누어서 저장되고 처리된다. 이러한 구조로 인해, 16비트 곱셈을 동시에 두개 처리가 가능해진다. DMAC이라는 명령어를 사용하면 한 CPU 사이클에 독립된 2개의 16비트 곱셈을 처리할 수 있다. 여기서 한가지 주의할 점은 C/C++ 언어로 프로그래밍 할 때, ANSI C에서 제공하는 수학 함수로는 32비트 곱셈을 못한다는 것이다. P 레지스터가 32비트이기 때문인데, TI에서 제공하는 Intelligent Q math 함수를 이용하면 64비트 곱셈도 처리가 되고, 정밀한 계산을 신속하게 처리할 수 있게 된다. 대부분의 DSP칩은 반도체 업체에서 제공하는 수학 함수등을 가지고 있다. 이 함수를 사용했을때, 최고의 효율과 정확도를 얻을 수 있음에 주의를 기울여야 한다.
15
TMS320F28x CPU 구조 TMS320F2812의 메모리 맵
16
TMS320F28x CPU 구조 TMS320F2812의 메모리 맵 SARAM 영역 : M0/M1/L0/L1/H0 M0와 M1
24계열 코드를 호환시키기 위한 메모리 28x를 C로 구동할 경우, M1 영역은 주로 스택으로 사용 L0와 L1 주로 데이터를 취급하는 용도 Code Security 기능이 적용되어 있다 H0 주로 코드를 다루는 데 사용 24계열과 호환시킬 경우, 프로그램 메모리로 사용 H0 영역에서 코드를 시작하는 부트 모드가 있다
17
TMS320F28x CPU 구조 TMS320F2812의 메모리 맵 코드나 데이터 저장이 가능한 롬/플래시 영역 OTP
FLASH(혹은 ROM) 128K Word 플래시나 ROM메모리의 물리적 특성으로 150MHz로 구동되지는 못한다. Boot ROM 및 BROM 각종 벡터들이 기본적으로 실려있다. 각종 수학 함수표가 내장 되어있다.
18
TMS320F28x CPU 구조 TMS320F2812의 메모리 맵 MEMORY MAP Register 영역
PF0,PF1,PF2 영역 Peripherals Frame의 약자로 Peripherals 회로를 제어하는 각종 레지스터들이 맵핑된 영역 PF0는 주로 메모리와 CPU내부 제어와 관련된 레지스터 PF1는 CAN관련 레지스터 PF2는 ADC, EV, SPI, SCI, McBSP등등 각종 주변회로용 제어 레지스터
19
TMS320F28x CPU 구조 TMS320F2812의 메모리 맵 외부 메모리 영역 ZONE 0와 ZONE 1
각각 8K Word 주소가 16비트로 표현이 가능하기에 소형 메모리 모델을 사용할 때 유용 ZONE 2와 ZONE 6 대형 메모리 모델을 사용할 때 유용 ZONE 7 MP mode와 MC mode 사용에 따라 영역이 바뀌게 된다.
20
TMS320F28x CPU 구조 TMS320F2812의 리셋
21
Thank You !
Similar presentations