将32位dsp与通用risccpu无缝混链的处理器装置的制作方法

文档序号:6471264阅读:208来源:国知局
专利名称:将32位dsp与通用risc cpu无缝混链的处理器装置的制作方法
技术领域
本发明涉及处理器体系结构技术领域,更具体的说,本发明是一种将32位DSP与 通用RISC CPU无缝混链的处理器装置,该处理器装置可以运行专用32位DSP指令以及基 于DSP处理的SMD指令,而且可以通过指令重构方式兼容运行通用RISC CPU指令。
背景技术
传统的通用精简指令集处理器(RISC CPU)是面向寄存器进行操作,带来的好处是 通常RISC CPU的指令格式简单,结构规整,软、硬件设计都比较简单。但是另一方面,RISC CPU只能依靠load/store指令来访问存储单元,寻址模式单一,且所能支持的运算指令类 型相对DSP处理器而言也过于简单。因此对于普通的一些数据量比较小的控制类应用,RISC CPU显得非常合适,然而随着技术的不断进步,人们对处理器应用的要求越来越高,诸如多 媒体、通信等应用需要快速、大量的数字信号处理,单依靠RISC CPU的简单结构似乎已经无 法胜任,RISC CPU单一的寻址模式和不够强大的运算能力成为数据处理性能上的瓶颈。
数字信号处理器(DSP)是针对RISC CPU在针对大量数字信号处理应用上的不足 而设计,它将重点放在了提高数据的处理能力上,尤其是针对诸如FFT、FIR滤波器等数字 信号处理的能力上。 一般DSP处理器都包含有一个独立的地址生成模块(DAG),从而可以支 持多种寻址模式。另外一个DSP处理器不同于RISC CPU的地方是DSP处理器内部包含有 快速的乘累加模块可以支持多样化的运算类指令。这两点使得DSP处理器对数据处理具有 灵活的模式和很快的速度,但是由于DSP是专注于做数字信号的处理,因此其对于系统的 控制能力往往不如RISC CPU。 传统的处理器芯片设计中, 一般都是选择单纯的RISC CPU处理器或者是DSP处理 器。为了能比较好的利用二者的优势,有的解决方案尝试将两者结合起来。 一种常见的融 合方案中,RISC CPU和DSP处理器仍旧是两个独立的单元,DSP作为通用处理器的一个加速 装置。但是这种结构只是简单的对两种处理器做拼凑,硬件开销是两个处理器之和,且二者 之间的数据和控制信号的传递会很复杂,需要一套外围电路来做处理,使得系统并不易于 使用。也有一些方案通过完全自定义的一套带有RISC CPU指令和DSP指令的全新指令集
来实现结构的融合,这样的方法虽然硬件各方面都可以做到优化,但是相应的对于一套新 的指令集和硬件结构,配套的软件系统也需要重新开发,增加了开发的成本。

发明内容
( — )要解决的技术问题 有鉴于此,如果能基于已有的一些RISC CPU指令集,在不改变其指令编码和执行 顺序的前提下,提出一种芯片架构上的RISC CPU和DSP处理器的纯融合结构,以RISC通用 处理器作为主控制,用户在使用时可以继续通过RISC CPU承载的软件资源和开发工具做开 发,DSP的开发则以函数库的方式完成,使用DSP功能时类似一种子程序调用的形式,诸如 FFT、 FIR、一些常用矩阵处理等都可以预先通过DSP指令的开发做成函数库,当软件编译后发现用到这类函数时可以直接调用。用户在使用处理器时就好像还是在用一个普通RISC CPU,这样能更好的利用已有的软件资源和硬件资源来完成各种处理的需求,无疑将会更好 的满足人们的应用。 因此,本发明主要解决目前已有的嵌入式开发系统中,RISC CPU和DSP处理器结 构无法有效融合的问题,提出一种将32位DSP与通用RISCCPU无缝混链的处理器装置。
( 二 )技术方案 为达到上述目的,本发明提供了一种将32位DSP与通用RISC CPU无缝混链的处 理器装置,该处理器装置由指令存储器模块、数据存储器模块、装载存储单元、寄存器堆模 块、取指模块、指令预解码和分发模块、并行度控制模块、协处理器模块,以及4个指令执行 通道构成,用于运行专用32位DSP指令和基于DSP处理的SMD指令,且能够通过指令重构 方式兼容运行通用RISC CPU指令。 上述方案中,所述指令存储器模块用于存储指令程序,采用程序ROM/RAM或cache 结构,且在采用cache结构时支持多路组相连结构。 上述方案中,所述数据存储器模块用于存储数据和中间计算结果,能够被配置成 完全的D-cache(数据高速缓存存储器)结构,或被配置成D-cache与高速暂存存储器 (Scratchpad Memory)相结合的结构。所述高速暂存存储器用于提供高速的数据存储,供 处理器在执行DSP指令时使用;该高速暂存存储器中的有一部分空间专门作为栈空间,用 于做DSP堆栈以支持栈指令的处理,栈的存储位宽为256bit,每行的256bit用于存放8个 32位通用寄存器值,能够在一个时钟周期内实现8个寄存器数据同时的入栈或出栈操作, 将8个寄存器数据同时堆入栈中或者将栈中数据取出根据出栈指令的要求存入到8个寄存 器中相应的寄存器。 上述方案中,所述的装载存储单元主要用于处理器在RISC CPU模式下支持Load/ Store指令的操作,它连接系统总线和数据高速缓存存储器。 上述方案中,所述寄存器堆模块是在现有RISC通用处理器寄存器堆的基础上增 加32个DSP专用的32bit寄存器而形成的,该32个DSP专用的32bit寄存器分成4组数据 寄存器和8组地址寄存器,数据寄存器和地址寄存器分别都由16个32bit的寄存器构成。
上述方案中,所述每组数据寄存器的构成类型相同,每组数据寄存器包含有4个 32bit寄存器,其中2个32bit的寄存器合并组成的一个64bit的乘累加寄存器、1个32bit 乘数寄存器M和1个32bit暂存寄存器T,乘数寄存器用作乘法指令中的一个操作数,暂存 寄存器用来保存中间结果数据。 上述方案中,所述每组地址寄存器的构成类型相同,每组地址寄存器包含4个 16bit地址寄存器,其中一个16位地址基址寄存器(ARB)、一个16位地址寄存器(AR)、一个 16位地址偏移寄存器(AR0)和一个16位循环/全局寻址地址寄存器(ARC)。
上述方案中,所述寄存器堆模块对于已有的RISC CPU指令,其可见的寄存器数目 和功能不变,RISC CPU指令对CPU可见的寄存器进行应用和修改;所述寄存器堆模块对于 DSP专用指令,能够访问整个寄存器堆,并能够对其值进行修改。 上述方案中,所述寄存器堆模块还包括一个32位的专用控制寄存器,用于指明 DSP程序和数据的页地址;该专用控制寄存器不在通用寄存器堆中,包含14bit的DSP程序 页地址、14bit的DSP数据页地址和4bit的DSP指令的状态位;该专用控制寄存器中的页
6地址用于DSP的跳转指令中,用来与地址寄存器形成全局访问地址,DSP的跳转只能在页范 围内进行跳转,该专用控制寄存器DSP本身无法修改,由通用处理器将其作为本身的协处 理器寄存器设置和更改。 上述方案中,所述取指模块用于从程序存储器中取出指令,处理器可支持的最大
指令分发并行度为4,为了保证指令的正确分发,指令槽宽度为16条指令,每当8条指令分
发完毕以后,取指模块从程序存储器中取出新的8条指令放入指令槽。 上述方案中,所述指令的预解码和分发模块用于通过解码指令的前8位来识别指
令是属于RISC CPU指令、DSP指令或者SIMD指令,并根据指令中所体现的并行度情况进行
指令分发。 上述方案中,所述并行度控制模块用于根据预解码模块解码出的指令类和相应比 特位信息生成并行度控制信号反馈给分发模块。 上述方案中,所述协处理器用于对整体处理器进行控制,并与已有RISC通用处理 器的控制保持一致,包括各种状态寄存器控制、运行模式和中断控制;同时,协处理器中还 提供浮点运算单元,进一步增强处理器的数据处理能力。 上述方案中,所述处理器内部的4个指令执行通道结构相同,每一个通道能够独 立完成所有的指令;每个通道中包括指令解码单元、程序流控制单元、状态控制单元、地址 生成单元、状态寄存器和多个执行部件;执行部件有数据存储控制单元、运算逻辑单元、 乘累加单元和移位单元。 上述方案中,该处理器装置采用多级流水结构,流水线主要包括取指IA、分发DP、 解码ID、访存MEM、传输TR、执行EX和回写WB。 上述方案中,该处理器装置内部提供3个旁路逻辑,用于减少数据冲突,分别是 从EX级到ID级的旁路逻辑通路、从TR级到ID级的旁路逻辑通路和从EX级到TR级的旁 路逻辑通路。 上述方案中,该处理器装置进一步采用内锁机制解决流水线或数据冲突,一旦有 冲突发生,内锁机制会自动停止EX级以前的流水线动作。 上述方案中,所述专用DSP指令用于面向寄存器数据进行操作,或者直接面向存 储器数据进行操作;DSP指令能够支持32位的数据操作,或支持2个16位数据的并行操作。
上述方案中,所述的专用DSP指令编码中,前6bit为指令标识,另外有2bit位来 标识其与前后指令的并行度,后24bit为具体的DSP指令;专用DSP指令主要包括算术、乘 累加、逻辑、移位、条件跳转和数据存储类指令,并提供了多种寻址模式和快速的数据堆栈 处理。 上述方案中,所述SMD指令编码的前8bit为指令标识,其后的24bit编码规则和 DSP指令后24bit编码规则相同,进行的操作也相同;使用SMD指令时,4个通道都开始工 作,进行相同的指令操作,只是对应的寄存器有所不同;SIMD指令本身没有并行度,每个时 钟只能处理1条SMD指令。 上述方案中,该处理器装置采用4通道指令并行发射机制,最大支持一个时钟周
期发射4条指令。(三)有益效果 从上述的技术方案看,本发明具有的有益效果是
首先,本发明提供的处理器装置实现了 DSP和通用RISC CPU无缝混链,继承了 32
位RISC CPU指令集承载的嵌入式操作系统、编译器以及各种控制协议栈; 第二,DSP指令支持多种寻址模式和数据运算模式,并且基于DSP指令的各种算法
通过扩充编译器的函数库和链接库就实现,这些函数库能够使本发明处理器在DSP状态下
有效地完成信号处理中密集数据计算的功能,从而实现用户DSP计算的"透明化"; 第三,本发明处理器的4通道发射机制增加了程序处理的并行度,大大提高了处
理器对密集数据进行处理计算的能力。


图1是本发明提供的处理器装置的整体结构示意图;
图2是本发明提供的处理器装置的流水线的示意图; 图3是本发明提供的处理器装置中DSP指令和SMD指令的编码结构示意图;
图4是本发明中扩展的32个32bit位宽DSP专用寄存器的的分配情况示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照 附图,对本发明进一步详细说明。 本发明以DSP和RISC CPU合二为一为出发点,将面向嵌入式处理的DSP和CPU 的架构统一,提出了一种32位DSP和通用RISC CPU无缝混链的处理器装置。该处理器装 置基于同一硬件平台,不但可以运行专用32位DSP指令以及基于DSP处理的SMD(Single Instruction Multiple Data :单指令多数据)指令,而且可以通过指令重构方式兼容运行 通用RISC CPU指令。该处理器的架构原型能通过指令重构方式支持成熟的、IP可商用授 权开放的嵌入式CPU指令集,同时该架构原型也能够通过指令重构的方式切换DSP处理状 态。另一方面,单条DSP指令可以支持32位的数据操作,或2个并行16位的数据操作。处 理器采用了 4通道发射机制来增加处理器的并行度,从而提高了该处理器的DSP计算效率 和CPU的执行控制效率。该处理器实现了 DSP处理和CPU处理的统一和透明化,可以直接 兼容成熟通用RISC CPU承载的软件资源和开发工具。DSP的计算功能通过函数库方式提 供。该处理器装置节省了 DSP处理系统开发资源,方便用户进行系统开发。
处理器的硬件结构是完全融合的,可以自由的执行各种指令格式的指令,不存在 RISC CPU数据通道和DSP数据通道要独立处理不同指令的情况。因此对于一些数据量大的 数字信号处理或者矩阵处理等应用,可以利用扩展的DSP指令和提供的SMD指令来完成, 从而把RISC通用处理器功能从繁重的数据处理任务中解放出来,更多的专注于控制方面 的应用。 该处理器的DSP指令集并不仅仅是面向寄存器进行操作的,其中还提供了直接面 向存储器进行操作的指令,这不但节省了指令所占用的程序空间,同时也使得处理器对数 据的处理速度大大提高。另一方面,扩展的DSP指令不仅支持32位的数据操作,同时也支 持或2个并行16位的数据操作,使得对数据的处理形式更加多样化,适用范围也更加广泛。 所述的DSP指令主要包括算术、乘累加、逻辑、移位、条件跳转和数据存储类指令,并提供了 多种寻址模式和快速的数据堆栈处理方式。为了更大程度的发挥DSP处理器和RISC CPU各
8自的优势,DSP指令的设计主要用来满足高速的计算需求,而是把对系统的控制留给RISC通用处理器指令来完成,因此DSP指令中没有设计过多对于中断控制等方面的指令。这同时也节省了整体指令集的指令条数,减小了解码模块的负担。 处理器采用了 4通道发射机制来增加处理器的并行度,在DSP指令编码中,前8bit中有2bit位来标识其与前后指令的并行度,后24bit是具体的DSP操作指令。这使得即使原始的RISC CPU指令中没有标识并行度的信息,也可以通过和其相临的DSP指令中的并行标识比特来加以分辨,从而实现了处理器指令分发尽可能大的并行度。
本发明处理器的指令集还支持部分SMD指令,它可以算作DSP指令的一种特殊情况,主要用来做数据的运算操作,包括ALU、 MAC和load/store操作,SMD指令尤其适合于一些矩阵处理等运算。SMD指令编码的前8bit作为标识,让处理器知道该条指令是SMD指令,其后的24bit编码规则和DSP指令后24bit编码规则相同,进行的操作也相同。在使用SIMD指令时,4个通道都开始工作,进行相同的指令操作,只是对应的寄存器有所不同。SMD指令本身没有并行度,每个时钟只能处理1条SMD指令。 如图1所示,图1是本发明提供的处理器装置的整体结构示意图,该处理器装置由指令存储器模块、数据存储器模块、装载存储单元、寄存器堆模块、取指模块、指令预解码和分发模块、并行度控制模块、协处理器模块,以及4个指令执行通道构成,用于运行专用32位DSP指令和基于DSP处理的SMD指令,且能够通过指令重构方式兼容运行通用RISC CPU指令。 指令存储器模块用于存储指令程序,采用程序ROM/RAM或cache结构,且在采用cache结构时支持多路组相连结构。指令存储器可以是程序ROM/RAM或cache结构(Icache) 。 I cache采用多路组相连结构,根据Icache大小的不同可以配置成不同的组相连形式。 数据存储器模块用于存储数据和中间计算结果,能够被配置成完全的cache结构,或被配置成cache与高速暂存存储器(scratchpad memory)相结合的结构。完全的cache结构主要用来配合已有RISC CPU功能,避免兼容应用上出现问题。高速暂存存储器用于提供高速的数据存储,供处理器在执行DSP指令时使用;该高速暂存存储器中的有一部分空间专门作为栈空间,用于做DSP堆栈以支持栈指令的处理,栈的存储位宽为256bit,每行的256bit用于存放8个32位通用寄存器值,能够在一个时钟周期内实现8个寄存器数据同时的入栈或出栈操作,将8个寄存器数据同时堆入栈中或者将栈中数据取出按出栈指令的要求存入到8个寄存器中相应的寄存器。这样位宽的堆栈处理设计可以在系统发生意外或中断时只用较少的时钟周期保存好当前寄存器中的值,提高了系统响应速度。
装载存储单元主要用于处理器在RISC CPU模式下支持Load/Store指令的操作,它连接系统总线和数据高速缓存存储器。 寄存器堆模块是在现有RISC通用处理器寄存器堆(Rl Rn)的基础上增加32个DSP专用的32bit寄存器(RDO RD31)而形成的,这些寄存器主要用来保存乘累加等复杂运算结果以及存储器访问地址等。该32个DSP专用的32bit寄存器分成4组数据寄存器和8组地址寄存器,数据寄存器和地址寄存器分别都由16个32bit的寄存器构成。每组数据寄存器的构成类型相同,每组数据寄存器包含有4个32bit寄存器,其中2个32bit的寄存器(ah,al)合并组成的一个64bit的乘累加(ACC)寄存器、1个32bit乘数寄存器M和1
9个32bit暂存寄存器T,乘数寄存器用作乘法指令中的一个操作数,暂存寄存器用来保存中 间结果数据。每组地址寄存器的构成类型相同,每组地址寄存器包含4个16bit地址寄存 器,其中一个16位地址基址(ARB)寄存器、一个16位地址(AR)寄存器、一个16位地址偏 移(AR0)寄存器和一个16位循环/全局寻址地址(ARC)寄存器。其中,ARB和AR内容均为 无符号数,AR0的内容为有符号数,ARC为无符号数。AR、 ARB、 AR0和ARC根据指令的不同, 可以形成多种寻址方式。这样的寄存器分配使得4通道在做运算的过程中各自可以用一组 寄存器,使得寄存器的使用不出现冲突。32个DSP专用的32bit寄存器和执行单元组成了 面向存储器访问的乘累加结构,可以高效地完成DSP计算功能。 寄存器堆模块对于RISC CPU指令,其可见的寄存器数目和功能不变,因此RISC CPU指令只能对其可见的寄存器进行应用和修改。对于DSP指令,其能访问整个寄存器堆, 并可以对寄存器的值进行修改。 另外,寄存器堆模块还包括一个32位的专用控制寄存器(dspCtrlReg),用于指明 DSP程序和数据的页地址;该专用控制寄存器不在通用寄存器堆中,包含14bit的DSP程序 页地址、14bit的DSP数据页地址和4bit的DSP指令的状态位。4bit的DSP指令的状态位 包括溢出、进位等。该专用控制寄存器中的页地址用于DSP的跳转指令中,用来与地址寄存 器形成全局访问地址,DSP的跳转只能在页范围内进行跳转,该专用控制寄存器DSP本身无 法修改,由通用处理器将其作为本身的协处理器寄存器设置和更改,为了避免错误,系统初 始化时或使用DSP程序前,要设置该寄存器。 取指模块用于从程序存储器中取出指令,处理器可支持的最大指令分发并行度为 4,为了保证指令的正确分发,指令槽宽度为16条指令,每当8条指令分发完毕以后,取指模 块从程序存储器中取出新的8条指令放入指令槽。 指令的预解码和分发模块用于通过解码指令的前8位来识别指令是属于RISC CPU指令、DSP指令或者SIMD指令,并根据指令中所体现的并行度情况进行指令分发。
并行度控制模块用于根据预解码模块解码出的指令类和相应比特位信息生成并 行度控制信号反馈给分发模块。 协处理器用于对整体处理器进行控制,并与已有RISC通用处理器的控制保持一 致,包括各种状态寄存器控制、运行模式和中断控制;同时,协处理器中还提供浮点运算单 元,进一步增强处理器的数据处理能力。 本发明采用了 4发射结构来提高指令执行的并行度,处理器内部有4个指令执行 通道,4个通道结构完全是同构的,每一个通道都可以独立完成所有的指令,因此指令发射 顺序不会受通道号的限制。每个执行通道中主要包括指令解码单元、程序流控制单元,状 态控制单元、地址生成(DAG)单元、状态寄存器和多个执行部件单元。执行部件主要有存 储控制单元、ALU(运算逻辑)单元、MAC(乘累加)单元和SHF(移位)单元。指令解码单元 解码具体指令类型和所需要的操作数。程序流控制单元主要处理程序执行顺序,主要涉及 跳转类指令。地址生成单元主要用于DSP指令,生成相应的访存地址并进行地址修改。状 态寄存器和状态控制单元主要记录当前处理器的各种状态,为指令执行中所需要做的各种 判断提供所需信息。 该处理器装置采用多级流水结构,流水结构可以根据应用要求做多级流水处理, 流水线完成的主要功能包括取指(IA)、分发(DP)、解码(ID)、访存(MEM)、传输(TR)、执行
10(EX)和回写(WB)等步骤。指令执行的大致流程如下IA级从指令存储器中取出指令;随后 在DP级进行指令预解码;生成相应的并行度信息后进行指令分发;分发到各个通道的指令 在ID级完成详细的指令解码;MEM级用来访问数据存储器,完成存储器数据的读写;MEM中 读出的数据在TR级存入数据暂存寄存器,同时在该级开始ALU、MAC等逻辑单元的操作;EX 进行指令的执行;最终数据在WB级写入相应的寄存器。 处理器内部提供了旁路逻辑(bypass)来减少数据冲突,整个流水线中有3个旁路 系统一个从EX级到ID级的bypass通路、一个从TR级到ID级的通路和一个从EX级到TR 级的bypass通路。同时处理器还提供了内锁(inter-lock)机制解决流水线或数据冲突, 一旦有冲突发生,内锁机制会自动停止EX级以前的流水线动作。 DSP指令用于向寄存器数据进行操作,或者直接面向存储器数据进行操作;DSP指 令能够支持32位的数据操作,或支持2个16位数据的并行操作。在专用DSP指令编码中, 前6bit为指令标识,另外有2bit位来标识其与前后指令的并行度,后24bit为具体的DSP 指令;专用DSP指令主要包括算术、乘累加、逻辑、移位、条件跳转和数据存储类指令,并提 供了多种寻址模式和快速的数据堆栈处理。SMD指令编码的前8bit为指令标识,其后的 24bit编码规则和DSP指令后24bit编码规则相同,进行的操作也相同;使用SMD指令时, 4个通道都开始工作,进行相同的指令操作,只是对应的寄存器有所不同;SIMD指令本身没 有并行度,每个时钟只能处理1条SMD指令。该处理器装置采用4通道指令并行发射机制, 最大支持一个时钟周期发射4条指令。 再次参照图1,图1是本发明提供的处理器装置的整体结构示意图。4个通道共用 相同的寄存器堆和存储器空间。取指单元从I cache中取出指令后预解码和分发单元进行 指令类型的判断并把指令类型送入并行度控制模块,并行度控制模块根据指令信号判断并 行度,分发单元进行指令分发。如果指令并行度为l,一条指令放入通道1 ;如果指令并行 度为2,两条指令放入通道1和通道2 ;如果指令并行度为3,三条指令放入通道1、2和3。 各个通道根据不同指令完成各自的任务,如果一旦有一个通道存在冲突需要流水线暂时停 止,则所有通道同时暂停。 图2是本发明提供的处理器装置的流水线的示意图。其中, IA :1 cache中读出指令数据(一次读出4word指令),将相应的指令送到指令槽;
DP :预解码指令槽中指令的头8位操作码,确定指令的类型以及并行度,进而根据 并行度把指令槽中的指令分发到各个通道中; DC :进行指令译码,如果需要访问MEM数据,则读取地址寄存器,得出访问存储器 或寄存器的地址,以及相应的读写信号和控制信号,同时地址寄存器AR也在该级内进行地 址后修改; MEM :该时钟周期主要根据指令类型以及地址进行存储器数据读写;
TR :对于数据转移类指令,进行寄存器的写操作,对寄存器堆的数据load操作均 在这一级完成;把从存储器读出的数据做缓存,暂存器中的数据和来自寄存器堆的数据被 送入移位和波兹(booth)编码化简单元进行运算化简。RISC通用处理器部分ALU指令执 行; EX :把移位和booth编码计算的中间结果存入中间结果寄存器,进行64bit的加法 阵列化简以及其他的ALU操作;
WB :更新相关寄存器。 图3是本发明提供的处理器装置中DSP指令和SMD指令的编码结构示意图。DSP 的指令主要包括ALU(算术逻辑)类指令、MAC(乘累加)类指令、条件跳转类指令和数据 存储类指令。DSP扩展指令中,前6bit为指令标识码,随后2bit分别表示该条指令和它前 后指令的并行关系1表示并行,0表示不并行。后24bit为具体DSP指令,aaa表示指令操 作中用的8个地址寄存器组中的某一个;指令编码中iiiiiiii表示立即数;dd表示指令 操作所用的4个数据寄存器组中的一个;ssssss为移位控制码字,支持最多左移31位,右 移32位;m表示所述的操作是16bit的还是32bit的;xxxxxxx为寻址模式,包括寄存器寻 址和存储器寻址,针对存储器寻址,还进一步支持地址递增、递减、地址+偏移量、反转地址 (reversedaddress)以及连接地址(linked address)等模式。SIMD类型指令的前8bit用 来做指令类型标识,后24bit的编码规则和DSP类指令后24bit的编码规则相同。SIMD指 令编码中没有指示并行度的比特位,对于SIMD指令,每个时钟周期发射1条指令,4个通道 做相同的操作。 图4是本发明中扩展的32个32bit位宽DSP专用寄存器的的分配情况示意图,根 据寄存器的编号前8个寄存器组成4个64bit乘累加(ACC)寄存器,接下来4个32bit乘 数寄存器(M)用来储存乘法指令中用到的乘数,随后4个32bit暂存寄存器(T)可以用来 做数据暂存,之后就是16个32bit寄存器组成的8组地址寄存器。 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡 在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保 护范围之内。
权利要求
一种将32位DSP与通用RISC CPU无缝混链的处理器装置,其特征在于,该处理器装置由指令存储器模块、数据存储器模块、装载存储单元模块、寄存器堆模块、取指模块、指令预解码和分发模块、并行度控制模块、协处理器模块,以及4个指令执行通道构成,用于运行专用32位DSP指令和基于DSP处理的SIMD指令,且能够通过指令重构方式兼容运行通用RISC CPU指令。
2. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述指令存储器模块用于存储指令程序,采用程序ROM/RAM或cache结构,且在采 用cache结构时支持多路组相连结构。
3. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述数据存储器模块用于存储数据和中间计算结果,能够被配置成完全的数据高 速缓存存储器D-cache结构,或被配置成D-cache与高速暂存存储器相结合的结构。
4. 根据权利要求3所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述高速暂存存储器用于提供高速的数据存储,供处理器在执行DSP指令时使用; 该高速暂存存储器中的有一部分空间专门作为栈空间,用于做DSP堆栈以支持栈指令的处 理,栈的存储位宽为256bit,每行的256bit用于存放8个32位通用寄存器值,能够在一个 时钟周期内实现8个寄存器数据同时的入栈或出栈操作,将8个寄存器数据同时堆入栈中 或者将栈中数据取出根据出栈指令的要求存入到8个寄存器中相应的寄存器。
5. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述寄存器堆模块是在现有RISC通用处理器寄存器堆的基础上增加32个DSP专 用的32bit寄存器而形成的,该32个DSP专用的32bit寄存器分成4组数据寄存器和8组 地址寄存器,数据寄存器和地址寄存器分别都由16个32bit的寄存器构成。
6. 根据权利要求5所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述每组数据寄存器的构成类型相同,每组数据寄存器包含有4个32bit寄存器, 其中2个32bit的寄存器合并组成的一个64bit的乘累加寄存器、1个32bit乘数寄存器M 和1个32bit暂存寄存器T,乘数寄存器用作乘法指令中的一个操作数,暂存寄存器用来保 存中间结果数据。
7. 根据权利要求5所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述每组地址寄存器的构成类型相同,每组地址寄存器包含4个16bit地址寄存 器,其中一个16位地址基址寄存器、一个16位地址寄存器、一个16位地址偏移寄存器和一 个16位系数地址寄存器。
8. 根据权利要求5所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述寄存器堆模块对于已有的RISC CPU指令,其可见的寄存器数目和功能不变, RISC CPU指令对CPU可见的寄存器进行应用和修改;所述寄存器堆模块对于DSP专用指令, 能够访问整个寄存器堆,并能够对其值进行修改。
9. 根据权利要求5所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述寄存器堆模块还包括一个32位的专用控制寄存器,用于指明DSP程序和数据 的页地址;该专用控制寄存器不在通用寄存器堆中,包含14bit的DSP程序页地址、14bit 的DSP数据页地址和4bit的DSP指令的状态位;该专用控制寄存器中的页地址用于DSP的 跳转指令中,用来与地址寄存器形成全局访问地址,DSP的跳转只能在页范围内进行跳转,该专用控制寄存器DSP本身无法修改,由通用处理器将其作为本身的协处理器寄存器设置 和更改。
10. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述取指模块用于从程序存储器中取出指令,处理器可支持的最大指令分发并行 度为4,为了保证指令的正确分发,指令槽宽度为16条指令,每当8条指令分发完毕以后,取 指模块从程序存储器中取出新的8条指令放入指令槽。
11. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述指令的预解码和分发模块用于通过解码指令的前8位来识别指令是属于RISC CPU指令、DSP指令或者SIMD指令,并根据指令中所体现的并行度情况进行指令分发。
12. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述并行度控制模块用于根据预解码模块解码出的指令类和相应比特位信息生成 并行度控制信号反馈给分发模块。
13. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述协处理器用于对整体处理器进行控制,并与已有RISC通用处理器的控制保持 一致,包括各种状态寄存器控制、运行模式和中断控制;同时,协处理器中还提供浮点运算 单元,进一步增强处理器的数据处理能力。
14. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述处理器内部的4个指令执行通道结构相同,每一个通道能够独立完成所有的 指令;每个通道中包括指令解码单元、程序流控制单元、状态控制单元、地址生成单元、状态 寄存器和多个执行部件;执行部件有数据存储控制单元、运算逻辑单元、乘累加单元和移 位单元。
15. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,该处理器装置采用多级流水结构,流水线主要包括取指IA、分发DP、解码ID、访存 MEM、传输TR、执行EX和回写WB。
16. 根据权利要求15所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其 特征在于,该处理器装置内部提供3个旁路逻辑,用于减少数据冲突,分别是从EX级到ID 级的旁路逻辑通路、从TR级到ID级的旁路逻辑通路和从EX级到TR级的旁路逻辑通路。
17. 根据权利要求16所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其 特征在于,该处理器装置进一步采用内锁机制解决流水线或数据冲突, 一旦有冲突发生,内 锁机制会自动停止EX级以前的流水线动作。
18. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特 征在于,所述专用DSP指令用于面向寄存器数据进行操作,或者直接面向存储器数据进行 操作;DSP指令能够支持32位的数据操作,或支持2个16位数据的并行操作。
19. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其 特征在于,所述专用DSP指令编码中,前6bit为指令标识,另外有2bit位来标识其与前后 指令的并行度,后24bit为具体的DSP指令;专用DSP指令主要包括算术、乘累加、逻辑、移 位、条件跳转和数据存储类指令,并提供了多种寻址模式和快速的数据堆栈处理。
20. 根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其 特征在于,所述SMD指令编码的前8bit为指令标识,其后的24bit编码规则和DSP指令后24bit编码规则相同,进行的操作也相同;使用SIMD指令时,4个通道都开始工作,进行相同的指令操作,只是对应的寄存器有所不同;SMD指令本身没有并行度,每个时钟只能处理1条SMD指令。
21.根据权利要求1所述的将32位DSP与通用RISC CPU无缝混链的处理器装置,其特征在于,该处理器装置采用4通道指令并行发射机制,最大支持一个时钟周期发射4条指令。
全文摘要
本发明公开了一种将32位DSP与通用RISC CPU无缝混链的处理器装置,该处理器装置基于同一硬件平台,不但能够运行专用32位DSP指令以及基于DSP处理的SIMD指令,而且能够通过指令重构方式兼容运行通用RISC CPU指令。另外,单条DSP指令支持32位的数据操作,或2个并行16位的数据操作。处理器采用了4通道发射机制来增加处理器的并行度,从而提高了该处理器的DSP计算效率和CPU的执行控制效率。该处理器实现了DSP处理和CPU处理的统一和透明化,继承了通用RISCCPU承载的软件资源和开发工具,DSP的计算功能通过函数库方式提供,节省了DSP处理系统开发资源,方便用户进行系统开发。
文档编号G06F9/30GK101739235SQ20081022748
公开日2010年6月16日 申请日期2008年11月26日 优先权日2008年11月26日
发明者梁利平, 王志君 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1