CN1261883C - 内部数据存储结构、寻址方法以及数字信号处理器 - Google Patents
内部数据存储结构、寻址方法以及数字信号处理器 Download PDFInfo
- Publication number
- CN1261883C CN1261883C CN 02150817 CN02150817A CN1261883C CN 1261883 C CN1261883 C CN 1261883C CN 02150817 CN02150817 CN 02150817 CN 02150817 A CN02150817 A CN 02150817A CN 1261883 C CN1261883 C CN 1261883C
- Authority
- CN
- China
- Prior art keywords
- memory
- register
- data
- address
- internal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
一种数字信号处理系统,数字信号处理系统中对内部寄存器的寻址方法、采用该方法的内部数据存储单元的组织结构以及采用该内部数据存储单元的组织结构的数字信号处理器。数字信号处理器的内部数据储存单元包括内存数据存储器与内存映射寄存器。内存数据存储器和内存映射寄存器共享统一的数据总线和数据地址总线。同时,内存数据存储器和内存映射寄存器各自占有独立的物理空间,物理地址和逻辑地址均分开,各自独立编址,内存数据存储器和内存映射寄存器对同一逻辑地址可以复用。利用指令的性质来确定是对内存数据存储器访问还是对内存映射寄存器访问。
Description
(1)技术领域
本发明涉及一种数字信号处理系统,尤其涉及数字信号处理系统中对内部寄存器的寻址方法、采用该方法的内部数据存储单元的组织结构以及采用该内部数据存储单元的组织结构的数字信号处理器。
(2)背景技术
数字信号处理器(DSP)是一种应用于信号处理的微处理器芯片电路,它具备一般微处理器的许多特征,因此它同专门的存储器电路芯片,如DRAM等,有所不同。DRAM电路除了芯片周围的读写电路较为复杂之外,其内部存储单元电路简单,结构单一,只是存储单元数量很多。而DSP和一般的微处理器一样,需要完成大量的运算和控制,电路结构十分复杂,完全属于微处理器一类的电路芯片产品。一般而言,对数据的寻址方式和数据存储结构总是紧密相关,二者对于微处理器电路芯片的性能相当重要。存储结构和寻址方式不单单影响微处理器的存储容量,也会影响到芯片的指令执行周期和执行效率,从而直接影响到芯片的速度和功耗。
目前的数字信号处理器在总线结构上主要采用多数据总线结构,并对内存操作提供有多种不同的寻址方式,这样就大大提高了对内部存储器的访问速度。而为了满足大量的数据处理和存储的需要,对数字信号处理器的数据存储容量也有相当高的要求。目前比较普遍的方式是采用分级式存储器系统,它是用高速、低容量的存储器作为主存储器,而用低速存取、高容量的存储器作为第二级存储。例如,人们常常以虚拟存储器系统来进行第二级存储,当需要处理的数据不在主存中时,虚拟存储器系统可以自动向主存传送所需的数据。这种虚拟存储的方式缓解了主存自身大小所产生的限制,但另一方面,采用虚拟存储结构时,总是要求指令中给出的地址码是一个虚拟地址,这个虚拟地址实际相当于一个逻辑地址,其长度比实际的主存容量所要求的长度要长很多。对于多地址结构的指令系统而言,这种过长的地址码使得寻址相当不灵活。目前的技术中也有设置内存映射寄存器来映射内存数据存储器的地址,从而在一定程度上也能达到扩展内存数据存储器的效果。当前主要采用的方式是把内存映射寄存器与内存数据存储器放在重合的空间内,同时还要对内存映射寄存器创建一条独立的数据总线,以对其进行访问。
图1所示的即为一种现有的DSP的内部数据存储结构,其中的内存映射寄存器611和内存数据存储器621放在重合的空间里,然后分别设置各自的数据总线612、622和数据地址总线613、623以对其进行数据存取。
图2为这种数据存储结构的组织图,其中,00H~7FH为内存映射寄存器空间,80H~1FFFH为双寻址随机存取存储器(DARAM),1FFFH~FFFFH为单寻址随机存取存储器(SARAM)。这里的数据存储器是把内存映射寄存器与内存数据存储器放在同一空间里,进行混合编址。在对内存映射寄存器或内存数据存储器进行访问时,要在指令中指出相对应的地址。如果对内存映射寄存器空间进行访问,则指令中必须指明地址,且该地址是在00H~7FH范围内。而若是对内存数据存储器进行访问,则地址是在80H~FFFFH范围内。
这种访问方式使得对内存映射寄存器的访问只能限于单一的直接寻址方式,无法象访问内存数据存储器一样可灵活地采用多种寻址方式,使编程很不灵活。而这种对内部寄存器单独设置的数据总线往往使整个数据存储单元在硬件结构上显得比较松散。此外,这样的内部数据存储结构因为需要额外的一条数据总线来访问内存映射寄存器,也使得硬件成本比较高。
(3)发明内容
本发明的一个目的在于提供一种用于数字信号处理系统中能够快速有效地访问内部寄存器的寻址方法。
本发明的另一目的在于提供一种应用于数字信号处理系统中能够快速有效地访问内部寄存器的数据存储结构。
本发明的又一目的在于提供一种使用能够快速访问内部寄存器的数据存储结构的数字信号处理器。
本发明的数字信号处理器的内部数据储存单元包括内存数据存储器与内存映射寄存器。内存数据存储器和内存映射寄存器共享统一的数据总线和数据地址总线。同时,内存数据存储器和内存映射寄存器各自占有独立的物理空间,物理地址和逻辑地址均分开,各自独立编址,内存数据存储器和内存映射寄存器对同一逻辑地址可以复用。
另一方面,区分是内存数据存储器访问指令还是内存映射寄存器访问指令则是由指令的性质来决定的。利用指令本身来指出,该指令是对内存数据存储器进行访问还是对内存映射寄存器进行访问。这样,就可以以类似对内存数据存储器的访问方式,采用多种寻址方式对内存映射寄存器进行访问。
数字信号处理器中对内部数据储存单元进行访问的地址由数据地址产生单元提供。该数据地址产生单元直接与数据地址总线相连,把经计算后产生的地址通过数据地址总线送往内存数据存储器或者是内存映射寄存器。而从指令中直接给出,数据地址产生单元的地址是指向内存数据存储器还是指向内存映射寄存器。
本发明中,内存数据存储器和内存映射寄存器对同一逻辑地址可以复用,而利用指令本身来指出是对内存数据存储器进行访问还是对内存映射寄存器进行访问,因此,对内存映射寄存器也可以采用多种方式进行寻址,同时,在指令编写时则不用对地址作限制,使程序编写更为简便。
本发明的内存映射寄存器和内存数据存储器共用数据总线、数据地址总线和数据地址产生单元,这样就充分利用了数字信号处理系统本身对内存数据存储器的强大的地址访问功能,提高了对内部寄存器的访问效率。
而内存映射寄存器与内存数据存储器空间彼此独立,并且各自单独编址,能够提高对内部寄存器访问的安全性,同时也可以避免数据冲突与控制冲突。
下面将结合附图和实施例对本发明作详细描述。
(4)附图说明
以下附图为对本发明示例性实施例的辅助说明,结合以下附图对本发明实施例的阐述,是为进一步揭露本发明的特征所在,但并不限制本发明,图中相同标号代表实施例中相应元件或步骤,其中:
图1为现有技术用于数字信号处理器的内部数据存储结构;
图2为现有技术用于数字信号处理器的内部数据存储结构组织图;
图3为本发明一实施例中用于数字信号处理器的内部数据存储结构示意图;
图4为本发明一实施例的内部数据存储结构组织图;
图5为本发明一实施例的内部数据存储结构访问方法框图;
图6为本发明一实施例的内部数据储存单元电路图;
图7为本发明一实施例的进栈指令的执行情况的示意图;
图8为本发明一实施例的出栈指令的执行情况的示意图。
(5)具体实施方式
本实施例以数字信号处理器(DSP)的数据存储结构及对该数字信号处理器的内部寄存器的访问方式为例对本发明进行详细的阐述。
本实施例中的DSP采用扩展哈佛结构,程序存储器和数据存储器分开设置。同时设有3条数据总线,包括2条数据装载总线和1条数据写回总线。其中两条数据装载总线均为16位只读数据装载总线,分别定义为X、Y数据总线,两条数据装载总线各有一条16位相应地址总线。数据写回总线为16位只写,并相应设有一条数据写回地址总线,为16位宽。
数据内存空间为32K字(每个字为2个字节),是以字为单位的。其中有8K字节的内部数据存储器,为静态随机存储器(SRAM),其余空间是外部数据存储器,为动态随机存储器(DRAM)。数据内存空间分为128段,每段512字。本实施例DSP的数据存储器定义为两个,分别为X数据存储器和Y数据存储器,分别对应于X、Y数据装载总线。定义多个内存数据存储器可以同时提供多个源操作数,缩短指令周期。但数据存储器的设置方式和数量并不影响本发明的实质。
本实施例中,DSP对内存数据存储器10的访问方式有多种,总的来说包括直接寻址和间接寻址两大类。直接寻址有数据指针(DP)方式和堆栈指针(SP)方式。间接寻址有单短内存寻址方式和单长内存寻址方式。由于本实施例内部数据存储结构定义了X、Y两个数据存储器,所以系统对内存数据存储器10还可以进行双内存寻址,从而提高了数据处理的并行度。
以下表1列出了本实施例对内存数据存储器10寻址的各种模式。表中AR指地址寄存器。
寻址模式 | 子模式 | 描述 |
直接寻址模式 | DP寻址模式 | DP(6-0)的值作高位,指令中立即数作低位赋给输出地址。 |
SP寻址模式 | SP的值加上立即数赋给输出地址。 | |
间接寻址模式/单短内存寻址模式 | 寄存器直接模式 | AR的值直接装入到输出的地址中。 |
前改变寄存器自增寻址模式 | 存取时,AR的值自加1,重新装入AR并同时赋给输出地址。 | |
后改变寄存器自增寻址模式 | 存取时,AR的值自加1,重新装入AR。 | |
前改变寄存器自减寻址模式 | 存取时,AR的值自减1,重新装入AR并同时赋给输出地址。 | |
后改变寄存器自减寻址模式 | 存取时,AR的值自减1,重新装入AR。 | |
间接寻址模式/单长内存寻址模式 | 前改变寄存器+短立即数寻址模式 | 存取时,AR的值加4位立即数,重新装入AR并同时赋给输出地址。 |
后改变地址寄存器+短立即数寻址模式 | 存取时,AR的值加4位立即数作为地址,AR不变。 | |
后改变寄存器+短立即数寻址模式 | 存取时,AR的值加4位立即数,重新装入AR。 | |
前改变寄存器+长立即数寻址模式 | 存取时,AR的值加16位立即数,重新装入AR并同时赋给输出地址。 | |
后改变地址寄存器+长立即数寻址模式 | 存取时,AR的值加16位立即数作为地址,AR不变。 | |
后改变寄存器+长立即数寻址模式 | 存取时,AR的值加16位立即数,重新装入AR。 | |
前改变寄存器+偏移寄存器寻址模式 | 存取时,AR的值加偏移寄存器,重新装入AR并同时赋给输出地址。 |
后改变地址寄存器+偏移寄存器寻址模式 | 存取时,AR的值加偏移寄存器作为地址,AR不变。 | |
后改变寄存器+偏移寄存器寻址模式 | 存取时,AR的值加偏移寄存器,重新装入AR。 | |
前改变寄存器+短立即数取模或比特反转寻址模式 | 存取时,AR的值加4位立即数,重新装入AR并同时赋给输出地址,输出地址取模或比特反转。 | |
后改变地址寄存器+短立即数取模或比特反转寻址模式 | 存取时,AR的值加4位立即数作为地址,AR不变,输出地址取模或比特反转。 | |
后改变寄存器+短立即数取模或比特反转寻址模式 | 存取时,AR的值加4位立即数,重新装入AR,输出地址取模或比特反转。 | |
前改变寄存器+长立即数取模或比特反转寻址模式 | 存取时,AR的值加16位立即数,重新装入AR并同时赋给输出地址,输出地址取模或比特反转。 | |
后改变地址寄存器+长立即数取模或比特反转寻址模式 | 存取时,AR的值加16位立即数作为地址,AR不变,输出地址取模或比特反转。 | |
后改变寄存器+长立即数取模或比特反转寻址模式 | 存取时,AR的值加16位立即数,重新装入AR,输出地址取模或比特反转。 | |
前改变寄存器+偏移寄存器取模或比特反转寻址模式 | 存取时,AR的值加偏移寄存器,重新装入AR并同时赋给输出地址,输出地址取模或比特反转。 | |
后改变地址寄存器+偏移寄存器取模或比特反转寻址模式 | 存取时,AR的值加偏移寄存器作为地址,AR不变,输出地址取模或比特反转。 |
后改变寄存器+偏移寄存器取模或比特反转寻址模式 | 存取时,AR的值加偏移寄存器,重新装入AR,输出地址取模或比特反转。 | |
间接寻址模式/双内存寻址模式(右分表为任一单内存寻址模式) | 寄存器直接模式(单内存) | AR的值直接装入到输出的地址中。 |
前改变寄存器自增寻址模式(单内存) | 存取时,AR的值自加1,重新装入AR并同时赋给输出地址。 | |
后改变寄存器自增寻址模式(单内存) | 存取时,AR的值自加1,重新装入AR。 | |
前改变寄存器自减寻址模式(单内存) | 存取时,AR的值自减1,重新装入AR并同时赋给输出地址。 | |
后改变寄存器自减寻址模式(单内存) | 存取时,AR的值自减1,重新装入AR。 | |
前改变寄存器+偏移寄存器寻址模式 | 存取时,AR的值加偏移寄存器,重新装入AR并同时赋给输出地址。 | |
后改变寄存器+偏移寄存器寻址模式 | 存取时,AR的值加偏移寄存器,重新装入AR。 |
表1.对内存数据存储器寻址的各种模式
由于DSP算法的复杂性,本实施例中DSP提供专门的硬件,即数据地址产生器(Data Address Generator,DAG)50,来产生指向数据的地址,见图5。数据地址产生器50可以提供多种不同的寻址模式,使对数据的寻址、装载和处理达到了并行,从而减少了数据存取的总的操作时间。
数据地址产生器50主要由间接寻址模式逻辑和直接寻址模式逻辑两部分构成。在直接寻址模式逻辑中,主要负责产生DP(Data Page Point,数据段)寻址模式和SP(Stack Point,堆栈段)寻址模式。间接寻址模式逻辑中,主要负责产生单短内存寻址模式,单长内存寻址模式和双内存寻址模式。
一般的,DSP中总是设有大量内部寄存器用来完成各种操作,比如说地址寄存器,就是在寄存器间接寻址方式下用来支持间接寻址等。本实施例中这些内部寄存器都采用的是通用寄存器,在其它实施例中也可以采用其它类专门设置的寄存器。
本实施例所采用的内部寄存器及其功能描述如表2所示:
内存映射寄存器名 | 内存映射寄存器描述 |
Ar0 | 地址寄存器 |
Ar1 | |
Ar2 | |
Ar3 | |
Ar4 | |
Ar5 | |
Ar6 | |
Ar7 | |
N0 | 偏移寄存器,与地址寄存器配合使用 |
N1 | |
N2 | |
N3 | |
N4 | |
N5 | |
N6 | |
N7 | |
MOD | 取模寄存器,在取模模式和比特反转模式中使用 |
BK | 基址寄存器,在取模模式使用 |
SP | 堆栈指针寄存器 |
LS.L | 循环体开始地址寄存器 |
LS.H | |
LE.L | 循环体结束地址寄存器 |
LE.H | |
LC | 循环次数寄存器 |
LSP | 循环栈寄存器 |
CTRL0 | 控制寄存器,含有控制和状态信息 |
CTRL1 | |
A.L | 累加器 |
A.H | |
A.X | |
B.L | 累加器 |
B.H | |
B.X | |
PC.H | 程序地址寄存器 |
RTI.L | 快速返回地址寄存器 |
RTI.H | |
RTD.L | 调试返回地址寄存器 |
RTD.H | |
RC | 单指令循环次数寄存器 |
XP | 装载寄存器 |
YP | 装载寄存器 |
DEAR | 数据寻址扩展寄存器 |
表2.内部寄存器及其功能
本发明将部分可以实现各种专门功能的内部寄存器同时作为内存映射寄存器20,使其映射到内存数据存储器的地址,以扩大内存数据存储器的容量。
本实施例中内存映射寄存器空间为64字(每个字为2个字节),是以字为单位的。同样的,本实施例中内存映射寄存器20也定义XR、YR两个内存映射寄存器,以便于进行双内存寻址,从而提高指令的并行度。
如图3所示,内存映射寄存器20直接与数据总线30和数据地址总线40相耦合,也就是说,内存映射寄存器20与内存数据存储器10共享数据总线30和数据地址总线40,从而也可以共用数据地址产生器50(图5)。这样数据地址产生器50就可以直接通过数据地址总线40给出对内存数据存储器10或是对内存映射寄存器20访问的地址,而不必设置其它的电路或专门的指令以在对内存映射寄存器20进行访问时单独给出地址。
同时,由于内部寄存器通常都包含有一些关键信息,为了保护内部寄存器,防止误操作,保证对内存数据存储器10和内存映射寄存器20的访问是互不干扰的,本发明的内存映射寄存器20与内存数据存储器10的物理空间相互独立,并且单独编址,使内存映射寄存器20可以和内存数据存储器10一起作为内部资源进行统一管理。
图4示例性地列出了一种用于实施本发明的数据存储组织结构。其中,内存10包括内部数据存储器60和外部数据存储器70。内存映射寄存器20与内部数据存储器60、外部数据存储器70分别处于不同的物理空间,编址也是各自独立进行。内存映射寄存器20的地址范围是00H~3FH,共有64位地址空间。而在本实施例中,内存映射寄存器20共包括35个寄存器,实际只用到35位地址,其余地址暂且保留。内部数据存储器60的地址范围是0000H~0FFFH,外部数据存储器70的地址范围是00000000H~FFFFFFFFH,而众所周知,外部数据存储器可以按照实际需求进行扩展,且并不影响本发明的实质。
结合图5所示,内存映射寄存器20和内存数据存储器10的地址为各自独立编址,从数值上可以完全相同,而只是由指令的性质来决定是访问内存映射寄存器指令还是访问内存数据存储器指令。若指令指出是内存数据存储器访问指令,则根据数据地址产生器50所提供的地址,系统从内部数据存储器10取出数据送到数据总线30中;若指令指出是内存映射寄存器访问指令,则根据数据地址产生器50所提供的地址,系统从内存映射寄存器20取出数据送到数据总线30中。进行寻址的指令在这里相当于一个开关,使数据总线30和数据地址总线40在内存数据存储器10与内存映射寄存器20之间切换。
这样,类似访问内存数据存储器10,DSP可以对内存映射寄存器20采用各种寻址方式来进行访问,使得访问内存映射寄存器20变得极为方便和灵活。可以采用的对内存映射寄存器20的寻址方式可以参见表1所列出的对内存数据存储器10的寻址方式。
在本实施例中,用作内存映射寄存器20的内部寄存器共有35个,按地址表分在0~40范围内,其余的地址暂且保留。相应地,内存映射寄存器20的地址只有低6位是有效的,而高10位是忽略的。
表3列出了本实施例用作内存映射寄存器20的内部寄存器对应的地址。
内存映射寄存器地址 | 内存映射寄存器名 |
0 | VNO(versionnumber) |
1 | 保留 |
2 | 保留 |
3 | 保留 |
4 | 保留 |
5 | 保留 |
6 | DCC |
7 | DEAR |
8 | Ar0 |
9 | Ar1 |
10 | Ar2 |
11 | Ar3 |
12 | Ar4 |
13 | Ar5 |
14 | Ar6 |
15 | Ar7 |
16 | N0 |
17 | N1 |
18 | N2 |
19 | N3 |
20 | N4 |
21 | N5 |
22 | N6 |
23 | N7 |
24 | MOD0 |
25 | MOD1 |
26 | BK0 |
27 | BK1 |
28 | SP |
29 | DP |
30 | XP |
31 | YP |
32 | A.L |
33 | A.H |
34 | A.X |
35 | B.L |
36 | B.H |
37 | B.X |
38 | CTRL0 |
39 | CTRL1 |
40 | LS.L |
表3.内存映射寄存器地址表
图6为本实施例DSP的储存单元电路图。储存单元的数据来源,即源操作数,有立即数、内存数据存储器10、装载寄存器和内存映射寄存器20。图6中内存数据存储器10分为X、Y两个,而装载寄存器分别对应于内存数据存储器,也分为XP和YP两个。储存单元的目的操作数为内存数据存储器10和内存映射寄存器20。作为储存操作的源操作数时,内存映射寄存器20中、内存数据存储器和装载寄存器的数据可储存到内存数据存储器10中,也可储存在内存映射寄存器20中。复用器使多路输入可通向一路输出。图6也清晰地反映出内存数据存储器10和内存映射寄存器20分开设置,各自享有独立的物理空间。
图6的元件只是表示DSP储存单元的一个拓扑图。图中的AH、BH、AL、BL等只是表示,其它的内存映射寄存器都不可移位,而只有累加器A和B才可以移位,这是因为若直接把内存映射寄存器与X/XP和Y/YP一样处理的话,就误表示成所有的内存映射寄存器都可以移位了。事实上,一般不会对内存映射寄存器的数据做移位处理。内存映射寄存器数据既可以写入这里的AH和BH,也可以换成是写入AL和BL。
在本实施例中,有三类指令可以访问内存映射寄存器20,即移动指令(MOVE)、入栈指令(PUSH)和出栈指令(POP)。对内存映射寄存器20的访问并不影响到当前数据页指针(data-page pointer,DP)和堆栈指针(stack-pointer,SP),这样,在写入寄存器时所需的功耗就达到了最低。实际上,根据DSP的性能和功能要求,也可以设计其它的指令来访问内存映射寄存器20。
以下分别以移动指令(MOVE)、入栈指令(PUSH)和出栈指令(POP)来进一步阐述本发明。
(1)移动指令(MOVE)
本实施例中MOVE指令应用非常灵活,对内存映射寄存器20进行操作的指令类别共有6种,其语法、功能如表4所示。
类别 | 汇编语法 | 执行效果 | 注释 |
1 | MOVE SR,D | D=SR | 将内存映射寄存器的值赋给累加器 |
2 | MOVE SR | XP或 | 将内存映射寄存器的值赋给XP或YP装 |
YP=SR | 载寄存器 | ||
3 | MOVE SR,DM | DM=SR | 将内存映射寄存器的值赋给内存 |
4 | MOVE 1k,DR | DR=1k | 将立即数赋给内存映射寄存器 |
5 | MOVE S,DR | DR=S | 将部分累加器的值赋给内存映射寄存器 |
6 | MOVE SM,DR | DR=SM | 将乘加单元操作数赋给内存映射寄存器 |
表4.与内存映射寄存器有关的移动指令语法
从表4中可以看到,类别1、2和3需要访问内存映射寄存器20,从内存映射寄存器20取数据并分别送给累加器、装载寄存器和内存数据存储器。类别4、5和6是对内存映射寄存器20进行储存操作,分别把立即数、部分累加器的值和乘加单元操作数赋给内存映射寄存器20。以下以类别1、2和3为例来说明本发明。
类别1举例如下:
MOVE XR,A||XR[Ar4]
||表示两条子指令并行,在这条指令中,||左侧为MOVE指令,右侧为内存操作指令。
若指令执行前有,
A | FFFF00F0000H |
Ar4 | 1BH(27) |
XR | 0 |
其中,Ar4为数据地址产生器50经过地址计算后产生的值。数据地址产生器50将产生的地址Ar4,即1BH,通过数据地址总线40送到内存映射寄存器20。内存映射寄存器20在地址1BH(27)所对应的内部寄存器为BK1,而BK1此时的值为0,赋给累加器A,这样,指令执行后的状态为,
A | 00000000000H |
Ar4 | 1BH(27) |
XR | 0 |
类别2举例如下:
MOVE XR||XR[Ar4]
若指令执行前有,
A | FFFF00F0000H |
Ar4 | 18H(24) |
XR | 0 |
XP | X |
其中,Ar4为数据地址产生器50经过地址计算后产生的值。XP中的X指任意值。数据地址产生器将产生的地址Ar4,即18H,通过数据地址总线50送到内存映射寄存器20。内存映射寄存器20在地址18H(24)所对应的内部寄存器为MOD0,而MOD0此时的值为0,赋给装载寄存器XP,这样,指令执行后的状态为,
A | FFFF00F0000H |
Ar4 | 18H(24) |
XR | 0 |
XP | 0 |
类别3举例如下:
MOVE XR,Y||XR[Ar4],Y[Ar0]
若指令执行前有,
A | FFFF00F0000H |
Ar4 | 11H(17) |
Ar0 | 0100H |
Ymem[0100H] | X |
XR[1BH] | 0 |
其中,Ar4和Ar0为数据地址产生器50经过地址计算后产生的值。Y数据存储器在地址为Ar0(即0100H)处的值设为任意值,在此用X代替。
数据地址产生50器将产生的地址Ar4,即11H,通过数据地址总线40送到内存映射寄存器20。内存映射寄存器20在地址11H(17)所对应的内部寄存器为N1,而N1此时的值为0,赋给数据存储器Y,这样,指令执行后的状态为,
A | FFFF00F0000H |
Ar4 | 11H(17) |
Ar0 | 0100H |
Ymem[0100H] | 0 |
XR[1BH] | 0 |
(2)进栈指令(PUSH)
汇编语法 | 执行效果 | 注释 |
PUSH DR | SP=SP-1;栈顶元素=DR | 先将SP自减,然后将目的内存或内存寄存器移至栈顶元素。 |
表5.与内存映射寄存器有关的进栈指令语法
指令举例:PUSH YR||Y[Ar4]
如图7所示,若执行指令前有,
Ar4 | 20H(32) |
A | FF 0000 F0F0H |
Mem[3] | X |
SP | 4 |
其中,Ar4为数据地址产生器20经过地址计算后产生的值。SP自减后所对应的栈顶元素Mem[3]设为任意值,在此用X代替。根据表3内存映射寄存器地址表,内存映射寄存器20在地址20H(32)所对应的是AL,即累加器A的低16位,指令执行前AL的值为F0F0H。
数据地址产生器20将产生的地址Ar4,即20H,通过数据地址总线40送到内存映射寄存器20。内存映射寄存器20将地址20H(32)所指向的数据F0F0H赋给栈顶元素Mem[3],这样,指令执行后的状态为,
Ar4 | 20H(32) |
A | FF0000F0F0H |
Mem[3] | F0F0H |
SP | 3 |
(3)出栈指令(POP)
汇编语法 | 执行效果 | 注释 |
POP DR | DR=栈顶元素; | 将栈顶元素移至目的内存映射寄存器, |
SP=SP+1 | 同时将SP自增。 |
表6.与内存映射寄存器有关的出栈指令语法
出栈指令举例:POP YR||Y[Ar4]
如图8所示,若执行指令前
Ar4 | 20H(32) |
A | FF0000BCDEH |
Mem[3] | FFFFH |
SP | 3 |
其中,Ar4为数据地址产生器20经过地址计算后产生的值。SP所对应的栈顶元素Mem[3]为FFFFH。根据表3内存映射寄存器地址表,内存映射寄存器20在地址20H(32)所对应的是AL,即累加器A的低16位,指令执行前的值为BCDEH。
数据地址产生器50将产生的地址Ar4,即20H,通过数据地址总线40送到内存映射寄存器20。栈顶元素Mem[3]的值FFFFH赋给内存映射寄存器20中地址20H(32)所指向的位置。这样,指令执行后的状态为,
Ar4 | 20H(32) |
A | FF0000FFFFH |
Mem[3] | FFFFH |
SP | 4 |
上述实施例只是为了更好地揭示本发明,而并不对本发明产生限制。任何基于本发明做出的修改和变化都属于本发明的实质和精神涵盖之下。
Claims (20)
1.一种用于数字信号处理系统中访问内部寄存器的数据存储结构,其特征在于:
所述数据存储结构包括内存数据存储器和内存映射寄存器;
所述内存数据存储器和所述内存映射寄存器共享同一的数据总线和数据地址总线;
所述内存数据存储器和所述内存映射寄存器各自占有独立的物理空间,物理地址和逻辑地址分开,各自独立编址;
所述内存数据存储器和所述内存映射寄存器对同一逻辑地址可以复用。
2.如权利要求1所述的数据存储结构,其特征在于可把所述数据存储结构设置为采用多种寻址方式对内存数据存储器进行访问。
3.如权利要求1所述的数据存储结构,其特征在于可把所述数据存储结构设置为采用多种寻址方式对内存映射寄存器进行访问。
4.如权利要求2或3所述的数据存储结构,其特征在于所述多种寻址方式包括直接寻址和间接寻址。
5.如权利要求1所述的数据存储结构,其特征在于可把所述数据存储结构设置为利用指令的性质来确定是对内存数据存储器访问还是对内存映射寄存器访问。
6.如权利要求1所述的数据存储结构,其特征在于所述内存映射寄存器是通用寄存器。
7.如权利要求1所述的数据存储结构,其特征在于所述内存映射寄存器是专门设置的寄存器。
8.一种用于数字信号处理系统中访问内部寄存器的寻址方法,其特征在于包括以下步骤:
由数据地址产生单元产生访问地址;
由指令的性质指出所述访问地址是内存数据存储器地址还是内存映射寄存器地址;
根据指令对内存数据存储器或内存映射寄存器的相应地址进行访问。
9.如权利要求8所述的寻址方法,其特征在于进一步包括采用多种寻址方法对内存数据存储器进行访问。
10.如权利要求8所述的寻址方法,其特征在于进一步包括采用多种寻址方法对内存映射寄存器进行访问。
11.如权利要求9或10所述的寻址方法,其特征在于所述多种寻址方法包括直接寻址和间接寻址。
12.如权利要求8所述的寻址方法,其特征在于所述指令包括移动指令、入栈指令和出栈指令。
13.一种使用能够快速访问内部寄存器的数据存储结构的数字信号处理器,其特征在于包括:
内部数据存储单元;
数据地址产生单元,提供对所述内部数据存储单元进行访问的地址;
其中所述内部数据存储单元包括内存数据存储器和内存映射寄存器,所述内存数据存储器和所述内存映射寄存器共享同一的数据总线和数据地址总线,所述内存数据存储器和所述内存映射寄存器各自占有独立的物理空间,物理地址和逻辑地址分开,各自独立编址。
14.如权利要求13所述的数字信号处理器,其特征在于可把所述数字信号处理器设置为采用多种寻址方式对所述内存数据存储器进行访问。
15.如权利要求13所述的数字信号处理器,其特征在于可把所述数字信号处理器设置为采用多种寻址方式对所述内存映射寄存器进行访问。
16.如权利要求14或15任一项所述的数字信号处理器,其特征在于所述多种寻址方式包括直接寻址和间接寻址。
17.如权利要求13所述的数字信号处理器,其特征在于所述内存数据存储器和所述内存映射寄存器对同一逻辑地址可以复用。
18.如权利要求13所述的数字信号处理器,其特征在于可把所述数字信号处理器设置为利用指令的性质来确定是对内存数据存储器访问还是对内存映射寄存器访问。
19.如权利要求13所述的数字信号处理器,其特征在于所述内存映射寄存器是通用寄存器。
20.如权利要求13所述的数字信号处理器,其特征在于所述内存映射寄存器是专门设置的寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02150817 CN1261883C (zh) | 2002-11-29 | 2002-11-29 | 内部数据存储结构、寻址方法以及数字信号处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02150817 CN1261883C (zh) | 2002-11-29 | 2002-11-29 | 内部数据存储结构、寻址方法以及数字信号处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1504898A CN1504898A (zh) | 2004-06-16 |
CN1261883C true CN1261883C (zh) | 2006-06-28 |
Family
ID=34234084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02150817 Expired - Fee Related CN1261883C (zh) | 2002-11-29 | 2002-11-29 | 内部数据存储结构、寻址方法以及数字信号处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1261883C (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930353A (zh) * | 2009-06-25 | 2010-12-29 | 龙迅半导体科技(合肥)有限公司 | Mcs51系列mcu双数据指针的实现 |
US9141179B2 (en) * | 2010-10-21 | 2015-09-22 | Intel Corporation | Fine grained power management in virtualized mobile platforms |
CN104360668B (zh) * | 2014-11-28 | 2017-05-03 | 国网重庆市电力公司电力科学研究院 | 一种数字化变电站的以太网控制器的控制方法 |
CN105808453B (zh) * | 2014-12-31 | 2018-09-28 | 晨星半导体股份有限公司 | 嵌入式装置及其存储器管理方法 |
CN110532030B (zh) * | 2019-08-01 | 2023-07-07 | 广州安凯微电子股份有限公司 | 一种cpu中优化寄存器访问的方法 |
CN112540793A (zh) * | 2020-12-18 | 2021-03-23 | 清华大学 | 支持多访存模式的可重构处理单元阵列及控制方法、装置 |
CN117420965B (zh) * | 2023-12-18 | 2024-03-22 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法 |
CN117555599B (zh) * | 2024-01-10 | 2024-04-05 | 睿思芯科(成都)科技有限公司 | 加快关键数据访问速度的芯片设计方法、系统及相关设备 |
-
2002
- 2002-11-29 CN CN 02150817 patent/CN1261883C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1504898A (zh) | 2004-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9542307B2 (en) | Shiftable memory defragmentation | |
CN101796484B (zh) | 线程优化的多处理器架构 | |
JP3197866B2 (ja) | キャッシュの操作を改良する方法及びコンピュータ・システム | |
US6732253B1 (en) | Loop handling for single instruction multiple datapath processor architectures | |
US20140359225A1 (en) | Multi-core processor and multi-core processor system | |
CN103019955B (zh) | 基于pcram主存应用的内存管理方法 | |
Milvang-Jensen et al. | BDDNOW: a parallel BDD package | |
CN108701024B (zh) | 用于在堆栈机器中分配虚拟寄存器堆栈的方法 | |
CN102289409B (zh) | 分层可伸缩的存储器分配器 | |
KR20110112810A (ko) | 데이터 처리 방법 및 장치 | |
CN1908859A (zh) | 降低高速缓存的功耗 | |
WO2007149979A2 (en) | Unified virtual addressed register file | |
CN101051265A (zh) | 共享一组合寄存器文件的操作数存取端口的装置 | |
CN1261883C (zh) | 内部数据存储结构、寻址方法以及数字信号处理器 | |
CN105393210A (zh) | 用于模拟共享存储器结构的存储器单元 | |
US7415576B2 (en) | Data processor with block transfer control | |
EP2466452B1 (en) | Register file and computing device using same | |
US6694407B1 (en) | Cache memory with data transfer control and method of operating same | |
CN1801092A (zh) | 一种嵌入式芯片及其程序空间扩展的方法 | |
US20040059894A1 (en) | Process for running programs on processors and corresponding processor system | |
US20080162856A1 (en) | Method for dynamic memory allocation on reconfigurable logic | |
CN100351813C (zh) | 数字信号处理系统中访问存储单元的方法及其处理系统 | |
US6067601A (en) | Cache memory based instruction execution | |
RU2487398C1 (ru) | Способ формирования виртуальной памяти и устройство для его реализации | |
CN102541745B (zh) | 微控制器数据存储器的寻址方法和微控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060628 Termination date: 20111129 |