dsPIC30F CPU 模块采用16 位(数据)改良的哈佛架构,并带有增强型指令集包含对DSP 的有力支持。 CPU 拥有24 位指令字,指令字带有长度可变的操作码字段。 程序计数器(PC)为24位宽,可以寻址高达4M × 24 位的用户程序存储器空间。 单周期指令预取机制用来帮助维持吞吐量并提供可预测的执行。 除了改变程序流的指令、双字移动(MOV.D)指令和表指令以外,所有指令都在单个周期内执行。 使用DO 和REPEAT 指令支持无开销的程序循环结构,这两个指令在任何时候都可被中断。
  dsPIC30F 器件在编程模型中有16 个16 位工作寄存器。 每个工作寄存器都可以充当数据、地址或地址偏移寄存器。 第16 个工作寄存器(W15)作为软件堆栈的指针工作,用于中断和调用。dsPIC30F 指令集有两类指令:MCU 类指令和DSP 类指令。 这两类指令无缝地集成到架构中并从同一个执行单元执行。 指令集包括很多寻址模式,指令的设置可使C 编译器的效率达到最优。数据空间可以作为32K 字或64K 字节寻址,并被分成两块,称为X 和Y 数据存储器。 每个存储器块有各自独立的地址发生单元(Address Generation Unit, AGU)。 MCU 类指令只通过X 存储器AGU 进行操作,可将整个存储器映射空间作为一个线性数据空间访问。 某些DSP 指令通过X 和Y 的AGU 进行操作以支持双操作数读操作,这将数据地址空间分成两个部分。
  X 和Y 数据空间的边界视具体器件而定。可以选择将数据空间存储器映射空间的高32KB映射到由8位程序空间可视性页(Program SpaceVisibility Page, PSVPAG)寄存器定义的任何16K 程序字边界内的程序空间内。 程序空间到数据空间的映射功能让任何指令都能象访问数据空间一样访问程序空间。 另外,在带有外部总线的器件上可将RAM 连接到程序存储器总线用来扩展内部数据RAM。X 和Y 寻址空间都支持无开销循环缓冲器(模寻址)。 模寻址省去了DSP 算法的软件边界检查开销。 此外,X AGU 的循环寻址可以与任何MCU 类指令一起使用。 X AGU 还支持位反转寻址,大幅简化了基2 FFT 算法对输入或输出数据的重新排序。
  CPU 支持固有(无操作数)、相对、立即数、存储器直接、寄存器直接和寄存器间接寻址模式。每条指令根据其功能要求,与一个预定义的寻址模式组相关。 每条指令最多支持6 种寻址模式。对于大多数指令,在每个指令周期dsPIC30F 能执行一次数据(或程序数据)存储器读操作、一次工作寄存器(数据)读操作、一次数据存储器写操作和一次程序(指令)存储器读操作。因此可以支持3 个操作数的指令,使A+B=C 操作能在单周期内执行。
  DSP 引擎具备一个高速17 位× 17 位乘法器、一个40 位ALU、两个40 位饱和累加器和一个40位双向桶形移位寄存器。 该桶形移位寄存器在单个周期内至多可将一个40 位的值右移15 位或左移16 位。 DSP 指令可以无缝地与所有其他指令一起操作,其设计可实现最佳的实时性能。 MAC指令和其他相关指令可以同时从存储器中取出两个数据操作数并将两个W寄存器相乘。 这要求数据空间对于这些指令拆分为两块,但对所有其他指令保持线性。 这是通过为每个地址空间指定某些工作寄存器,以透明和灵活的方式实现的。
  dsPIC30F 具有向量异常(exception)机制,带有多达8 个不可屏蔽陷阱源和54 个中断源。 可以为每个中断源分配7 个优先级之一。
深圳市
 
深圳耐斯迪芯片解密事业部提供各种芯片解密、单片机破解服务,欢迎来电咨询。