数据的有效加载和存储的制作方法

文档序号:9646521阅读:500来源:国知局
数据的有效加载和存储的制作方法
【专利说明】数据的有效加载和存储
[0001]Μ?
[0002] 人们往往期望处理器可以支持并发独立数据加载和存储(例如,从存储器到寄存 器,以及从寄存器到存储器)。对于这个问题的已知解决方案是使用多个地址单元,从而可 以并行计算加载地址和存储地址(因此用于加载和存储操作)。然而,增加多个地址单元 增大了处理器的物理尺寸(例如,就硅面积而言)并且这相应地增加了处理器的成本。此 外,当增加附加的地址单元时,需要附加的指令信息以控制额外的地址单元,这导致增加的 指令译码逻辑和增加的指令存储需求(例如,需要更多的代码RAM)。这进一步地增加了处 理器所需的硅面积。
[0003] 以下所描述的实施例并不限于解决从存储器加载数据和将数据存储到存储器的 已知处理器和已知方法的任何缺点或全部缺点的实现。

【发明内容】

[0004] 提供本
【发明内容】
来以简化的形式介绍以下在详细的描述中进一步描述的概念的 选择。该
【发明内容】
并不旨在表明所要求保护的主题的关键特征或本质特征,其也不旨在用 于帮助确定所要求保护的主题的范围。
[0005] 描述了数据从存储器到寄存器的有效加载和数据从寄存器到存储器的存储的方 法和装置。在实施例中,处理器包括数据结构,用于加载操作的地址被压入到该数据结构。 替代独立生成用于存储操作的地址,地址被从数据结构中弹出并且直接被使用或者可以首 先将可选的偏移应用到弹出的地址。这样,存储操作和加载操作可以并行执行,因为它们不 同时需要使用独立生成用于加载操作/存储操作的地址的逻辑。在各个示例中,数据结构 是FIFO结构。
[0006] 第一方面提供在处理器中生成用于数据存储操作的一个或多个地址的方法,该方 法包括:响应于数据加载指令,将针对数据加载指令生成的一个或多个地址存储在数据结 构中;并且响应于数据存储指令,访问数据结构中一个或多个存储的地址以及确定用于由 数据存储指令触发的数据存储操作中的一个或多个地址,其中,基于一个或多个被访问的 地址确定用于数据存储操作中的一个或多个地址。
[0007] 第二方面提供处理器,所述处理器包括:数据结构,其布置成存储响应于数据加载 指令生成的一个或多个地址;以及存储地址逻辑,其布置成响应于数据存储指令访问来自 数据结构的一个或多个存储的地址并且确定用于由数据存储指令触发的数据存储操作中 的一个或多个地址,其中,基于一个或多个被访问的地址来确定用于数据存储操作中的一 个或多个地址。
[0008] 又一方面提供了具有在其上编码的、用于生成如本文所描述的处理器的计算机可 读程序代码的计算机可读存储介质和具有在其上编码的、用于生成配置为执行本文所描述 的任何方法的处理器的计算机可读程序代码的计算机可读存储介质。
[0009] 本文描述的方法可由配置有软件的计算机执行,软件以机器可读的形式存储在有 形存储介质上,例如,当程序在计算机上运行时以及在计算机程序可实现在计算机可读存 储介质上的情况下,以包括用于配置计算机来执行所述方法的组成部分的计算机可读程序 代码的计算机程序的形式、或以包括适合于执行本文所述的任何方法的所有步骤的计算机 程序代码工具的计算机程序的形式。有形(或非暂时性)存储介质的示例包括磁盘、拇指驱 动器、存储卡等,且并不包括传播信号。软件可适合于在并行处理器或串行处理器上执行, 使得方法步骤可以按任何适当的顺序执行或同时执行。
[0010] 本文描述的硬件部件可由非暂时性计算机可读存储介质产生,非暂时性计算机可 读存储介质具有在其上编码的计算机可读程序代码。
[0011] 本文认为固件和软件可以分开使用并且是有价值的。其旨在包括运行在"非智能 硬件"或标准硬件上或控制"非智能硬件"或标准硬件的软件以执行期望的功能。还旨在包 括"描述"或定义硬件配置的软件,例如,如用于设计硅芯片或用于配置通用可编程芯片的 HDL(硬件描述语言)软件,以执行期望的功能。
[0012] 对技术人员将明显的是,优选的特征可被适当地组合,并可与本发明的任何方面 组合。
【附图说明】
[0013] 将参考下面的附图以示例的方式描述本发明的实施例,在附图中:
[0014] 图1示出了在其中可以实现本文所描述的方法的示例处理器的示意图;
[0015] 图2是示出了地址单元的更多细节的示意图;
[0016] 图3是示出了同时用于加载指令和存储指令的地址单元的操作的示例方法的流 程图;以及
[0017] 图4是示出了两个示例FIFO结构的示意图。
[0018] 在全部附图中使用共同的参考数字来指示类似的特征。
【具体实施方式】
[0019] 下面仅以示例的方式描述本发明的实施例。这些示例代表申请人当前已知的实践 本发明的最佳方式,但是其不是可实现本发明的唯一方式。该描述阐述示例的功能和用于 构造和操作示例的步骤的顺序。然而,可通过不同的示例来实现相同或等效的功能和顺序。
[0020] 如以上所描述的,使处理器内的并发独立数据加载和数据存储可行的解决方案是 使用多个地址单元,使得在任何循环周期内,不同的地址单元可以独立地计算加载操作或 存储操作(例如,从存储器加载到寄存器,或从寄存器存储到存储器)中使用的存储器地 址。然而这种解决方案由于附加的地址单元,引起了硅面积的增加并且还导致指令信息的 增加。指令信息的增加也影响硅面积,因为它需要增加的指令译码逻辑和更多的RAM来存 储指令。处理器的物理尺寸不断增加通常是不期望的,因为这增加成本并且不利于减小包 括处理器的设备(例如,机顶盒、数字收音机和TV、移动电话、平板电脑,等等)的尺寸和/ 或将更多的功能添加到芯片/设备而不增加尺寸的普遍期望。
[0021] 本文所描述的是能够并发地执行加载和存储而不需要附加的(例如,第二)地址 单元的方法和装置。如以下更详细描述的,这可以通过在后续数据存储操作中重用数据加 载操作期间生成的地址(或地址序列)实现。例如,由处理器实现的方法可以将数据元素从 存储器(例如,从地址A)读入寄存器,将数据元素输入到一些算术运算中,并且然后将来自 寄存器的结果写回到最初读取数据元素的位置(例如,存储器中的地址A)。替代在加载操 作时使用生成加载地址(地址A)的地址单元和后续在相应的存储操作时使用生成存储地 址(地址A)的地址单元,将加载地址存储在数据结构中,诸如存储在FIFO(先进先出)数 据结构中,并且然后在执行相应的存储操作时,将加载地址从数据结构(例如,从FIFO)读 回。虽然这描述了原位类型的操作(即,其中的存储地址与加载地址相同),但是该方法还 可以用于复制类型的操作(即,其中的存储地址与加载地址不相同,但是存储地址可以很 容易地从加载地址生成)。
[0022] 方法的描述涉及相应的加载指令和存储指令。加载指令和存储指令被认为是"对 应的",前提是加载指令加载一些数据并且存储指令存储处理该数据的结果。例如,在数据 单元采用4个周期来执行,并且加载操作发生在周期0,数据单元在周期1-4执行且相应的 存储操作发生在周期5。
[0023] 图1示出了在其中可以实现本文所描述的方法的示例处理器100的示意图。在该 示例中,处理器100是单线程处理器,然而该方法也适用于多线程处理器。
[0024] 处理器100包括控制单元102、地址单元104、数据单元106以及存储器单元108。 图1还示出了在处理器100外部的代码(或指令)存储器110和数据存储器112 ;然而,应 该理解的是,这些存储器可以合并为用于数据和代码的单个存储器。此外,代码存储器和/ 或数据存储可以被包含在处理器100之内和/或被包含在处理器100的同一芯片上。
[0025] 控制单元102找取和译码存储在代码存储器110中的指令并且因此可以被描述为 实现取指级114和译码级116。控制单元102被配置为从如由程序计数器(PC)指示的程序 (以程序顺序)找取指令。一旦(例如,通过取指级114)找取了指令,控制单元102就被布 置成(例如,在译码级116)解释指令。特别是,每个指令可以包括一个或多个寄存器写入 操作;一个或多个寄存器读取操作;和/或一个或多个算术运算或逻辑运算。寄存器写入操 作对目标存储器写入,该寄存器写入操作也可以称为加载操作,而寄存器读取操作从源寄 存器读取,该寄存器读取操作也可以称为存储操作。源寄存器和目标寄存器117可以位于 数据单元106内并且也可以称为数据路径寄存器。地址单元104和控制单元102内也可以 有寄存器,其可以用来存储处理器操作中使用的各个参数和/或可以在数据存储器中保存 的参数。对于读取/写入操作,控制单元102将指令分发到存储器单元108内实现的加载 /存储单元并且用于读取/写入(或加载/存储)操作的地址在地址单元104内生成。对 于算术或逻辑运算,控制单元102将指令分发到数据单元106 (其也可以称为数据路径功能 单元)用于执行(使用先前已经加载到寄存器的数据)。
[0026] 地址单元104负责执行从存储器到寄存器以及从寄存器到存储器的所有数据传 输(例如,传输到数据存储器112以及从数据存储器112传输)。如在图1中所示,地址单 元104包括地址生成逻辑118,其用来以已知的方式在存储器中(例如,数据存储器112中) 生成用于加载/存储操作的地址。处理器100中的地址单元104还包括数据结构12
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1