一种处理器体系结构的制作方法

文档序号:6597810阅读:181来源:国知局
专利名称:一种处理器体系结构的制作方法
技术领域
本发明涉及处理器体系结构领域。
背景技术
现有的处理器体系结构在执行操作时通常先用专门的数据装载指令将操作数从 存储器中装载(load)到寄存器中,再送到运算单元执行相应操作;执行完毕后,先将执行 结果保存在寄存器中,再用专门的数据存储指令将寄存器中的数据存储(store)到存储器 中。即便是支持操作数存储器寻址的处理器,由于存储器端口数目和带宽的限制,无法同时 从存储器直接取得运算单元所需的全部操作数,而是先将一部分操作数从存储器装载到寄 存器中,再由存储器和寄存器同时提供运算单元所需的操作数。缓存(cache)的作用是将存储器中的一部分内容(即操作数)复制在缓存中,使 这些内容能在短时间内由处理器快速存取,以保证流水线的持续运行。然而,由于缓存是存 储器的一部分镜像,即便存在于缓存中的操作数,也必须先被全部或部分地装载到寄存器 中后,才能被运算单元使用,并没有一种由缓存直接向运算单元提供全部操作数并将执行 结果直接写回缓存的处理器体系结构。根据统计,在传统处理器的程序中,装载指令和存储指令占程序中指令总数30% 左右。由于装载指令和存储指令本身并不涉及算术逻辑运算,因此这类指令的比重越大,处 理器运算单元的利用率越低,处理器的运算能力越无法得到充分的发挥。专门的装载/存储单元(load store unit)的提出在一定程度上实现了装载/存 储指令与算术逻辑运算指令的并行执行,提高了处理器运算单元的利用率。然而装载/存 储指令涉及的操作数与之后使用这些操作数的运算指令之间的数据相关性使得装载/存 储单元带来的性能提升并不理想。此外,额外的装载/存储单元增加了处理器的复杂性。本发明公开了全新的处理器体系结构,从根本上解决处理器的效率问题。

发明内容
本发明提出了一种基于直接支持运算单元(Execution Unit)的零级存储器新的 处理器体系结构。所述处理器体系结构与现有的传统处理器体系结构相比,有以下不同(1)没有对操作数的装载指令;(2)没有对执行结果的存储指令;(3)用零级存储器代替传统处理器体系结构中的通用寄存器堆(RegisterFile); 所述零级存储器的端口数大于或等于三个。在传统处理器体系结构的存储层次中,比一级缓存更低存储层次的是通用寄存器 堆。本发明所述的零级存储器在对运算单元的运算支持效果上相当于通用寄存器堆,但本 质上是存储器,内容是更低层次存储器中一部分内容的镜像,由存储机制自动填充和替换, 不需要专门的指令进行装载和存储。本发明所述的寄存器需要专门的装载/存储指令按寄存器号寻址进行装载或存储数据,如寄存器堆和处理器状态寄存器(processor status registers);而本发明所述 存储器是整个系统存储器中一部分内容的镜像,由存储地址寻址,所述存储器中数据的填 充和替换按某种机制自动进行,不需要专门的指令明示(explicit),如各级缓存和内存。本发明所述的处理器体系结构中的运算单元能直接从存储器取得操作数、并将执 行结果写回存储器。此外,所述处理器体系结构包含下列部分特征或全部特征(1)没有寄存器堆;(2)没有将操作数从存储器装载(load)到寄存器堆的指令;(3)没有将执行结果从寄存器堆存储(store)到存储器中的指令;(4)对存储器的寻址方式包括立即数直接寻址、基地址加偏移量方式寻址。本发明所述的处理器体系结构支持复数个流水线段同时对逻辑意义上的同一个 存储器进行取操作数或写回执行结果的访问,可以是同时进行单数个或复数个数据的读取 和写回。本发明所述处理器体系结构中的指令格式可以只支持单数据寻址,也可以支持双 数据寻址,还可以支持三数据寻址或更多数据寻址。所述数据寻址包括对运算单元所需的 操作数的寻址和对运算单元执行结果的寻址。本发明所述处理器体系结构中的寻址方式可以是通过指令码中的立即数直接寻 址。本发明所述处理器体系结构中的寻址方式也可以通过基地址加指令码中的立即 数得到的地址寻址。基于本发明所述的处理器体系结构构成的处理器包含零级存储器;所述零级存储 器具有同时支持读取至少两个数据并写回至少一个数据的功能,可以由一个单独的多端口 存储器构成,也可以由复数个单端口或多端口存储器构成。本发明所述的零级存储器中储存的是处理器对应的主存储器中内容的子集,即所 述零级存储器是部分主存储器的镜像,具有同时进行多个数据读写的功能,具体来说,至少 能支持同时读取两个数据并写入一个数据。所述零级存储器的工作频率应适应运算单元工作频率,指所述零级存储器能以运 算单元能达到的最高时钟频率不间断地提供操作数并接收执行结果。举例而言,若对应所述体系结构的指令中最多一次用到三个数据寻址,当零级存 储器支持在同一时钟周期内完成读取两个数据并写入一个数据,那么所述零级存储器的时 延应当小于或等于运算单元的时延。若达不到所述的时延,则零级存储器即为制约处理器 性能的瓶颈。当本发明所述零级存储器由复数个单端口或多端口存储器构成时,所述多端口存 储器至少由一个具有单数个端口或复数个端口的第一存储器和一个具有复数个端口的第 二存储器构成。当本发明所述零级存储器由复数个单端口或多端口存储器构成时,所述多端口存 储器还可以包括一个具有单数个端口或复数个端口的第三存储器,用于暂存第一存储器的 输出数据,以供运算单元获取操作数。本发明所述第一存储器的端口越少,则第二存储器的端口就越多以补偿。根据本发明技术方案,以三端口零级存储器为例,可以有以下几种构成情况的实施例。此外还可以有更多的构成情况,均在本发明技术方案的范围内。(1)由一个具有三个端口的存储器构成,所述具有三个端口的存储器可以同时支 持两个读数据操作和一个写数据操作,以实现向运算单元提供操作数并写回执行结果的功 能;(2)由一个具有两个端口的第一存储器和一个具有三个端口的第二存储器构成, 所述第一存储器用于向运算单元提供操作数,并接收从第二存储器来的写回数据,所述第 二存储器用于向运算单元提供操作数并接收执行结果,以及将数据写回第一存储器;(3)由一个具有三个端口的第一存储器和一个具有两个端口的第二存储器构成, 所述第一存储器用于向运算单元及所述第二存储器提供操作数并接收执行结果,所述第二 存储器用于接收从所述第一存储器来的操作数并向运算单元提供操作数。本发明所述的第一存储器或第二存储器可以由复数个大小相同或不同的存储器 构成;当所述第一存储器由复数个不同大小的存储器构成时,较小的存储器可以存有较大 的存储器中的一部分数据。当本发明所述的第一存储器或第二存储器是由复数个存储器构成时,若要写入数 据,则通过复数个所述存储器的端口向相同地址写入同样的数据,若要读出数据,则可以根 据地址的不同,通过复数个所述存储器的端口读出不同的复数个数据,或只通过复数个所 述存储器中的一个的端口读出数据。本发明所述的第二存储器具有以下特征(1)用于存储操作数及所述操作数对应的地址信息;所述地址信息可以是地址 值,也可以是基地址值及偏移量;还可以是基指针寄存器号及偏移量;(2)所述用于存储操作数的操作数存储单元与用于存储操作数地址的地址信息存 储单元一一对应;(3)具有读、写指针,可以按特定算法写入或读出操作数;(4)可以将单数个或复数个输入地址信息与存储的地址信息进行匹配,并输出匹 配成功的单数个或复数个对应操作数;所述输入地址信息可以是地址值,也可以是基地址 值及偏移量,还可以是基指针寄存器号及偏移量。本发明所述的第二存储器还可以具有写融合(write merge)功能,即被写入的数 据对应的地址信息在所述第二存储器中已存在,则可以将所述写入的数据替换部分或全部 已存在的数据。举例而言,所述第二存储器可以由操作数存储单元和地址信息存储单元构成。按 循环顺序写入操作数时,将操作数写入写指针指向的操作数存储单元,并将所述操作数对 应的地址信息写入所述操作数存储单元对应的地址信息存储单元,再将写指针前移,即增 加写指针对应的地址。按循环顺序读出操作数时,则将读指针指向的操作数存储单元及其 对应的地址信息读出,再将读指针前移。当所述写指针或读指针已指向所述第二存储器的 最后一项操作数存储单元时,若前移指针,则所述写指针或读指针将指向所述第二存储器 的第一项操作数存储单元。此时,所述第二存储器类似一个循环先入先出队列(FIFO),具备 循环先入先出队列写入、读出,及数据有效性、队列满、队列空等特性。所述写入用于接收运 算单元的执行结果。所述读出,用于将数据写回所述第一存储器。当从所述第二存储器向运算单元提供操作数时,所述第二存储器中的全部有效地
7址信息存储单元并行与输入的地址信息进行匹配,并输出匹配成功的地址信息对应的操作 数存储单元中的操作数。此时,所述第二存储器的结构形式类似一个内容寻址存储器,特征 是存储的每一组地址均可以与复数组输入地址并行匹配,输出所述复数组输入地址匹配成 功时对应的数据。所述匹配成功而输出的操作数即运算单元所需的操作数。基于本发明所述的处理器体系结构构成的处理器还可以包含基指针(BP,Base Pointer)寄存器,用于存储对零级存储器进行的以基地址加偏移量方式寻址时的基地址。本发明所述的处理器体系结构中每个有效的基指针寄存器存储与所述零级存储 器中的一部分数据存储单元对应的基地址;若所述第二存储器存储的地址信息是基指针寄 存器号及偏移量、且所述有效的基指针寄存器的内容被改写后,第二存储器中对应于基指 针寄存器原基地址的数据存储单元中的数据应被无效化;若所述数据存储单元中的数据 应该但还没有写回第一存储器时,则需要先将被更改过的数据写回第一存储器后再被无效 化。举例而言,根据本发明所述处理器体系结构,可以由指令码中对应操作数或执行 结果的基指针寄存器号找到对应的地址寄存器,从而得到该操作数或执行结果的基地址。 再将该基地址与指令码中对应操作数或执行结果的偏移地址相加,从而得到对应操作数或 执行结果的实际地址,进而完成寻址。本发明所述处理器体系结构可以具有专门的基地址装载指令,通过所述地址装载 指令可以将需要用到的基地址装载到所述基指针寄存器中;也可以以当前基地址为指针, 根据程序运行的实际情况,加上一定的偏移量,从而得到新的基地址,并自动将所述新的基 地址装载到所述基指针寄存器中。根据本发明所述技术方案,使用复数个基指针寄存器,可以使运算单元能获取到 数据的地址空间不连续的,用较少的指令位数实现对位置上分散的数据的访问,能有效地 缩短所述指令的字长,增大代码密度。本发明所述处理器体系结构的指令中不同的操作数或执行结果可以共用同一组 基指针寄存器,也可以具有各自独立或部分独立的基指针寄存器。即所述基指针寄存器可 以仅由一组地址寄存器构成,用于操作数一、操作数二和执行结果的寻址;也可以由三组地 址寄存器构成,所述三组地址寄存器分别用于操作数一、操作数二和执行结果的寻址。此外 由不同操作数共用一组基指针寄存器、执行结果用另一组基指针寄存器,或者一个操作数 与执行结果共用一组基指针寄存器,另一个操作数用另一组基指针寄存器的情况也类似。所述基指针寄存器可以全部用来存储基地址,也可以有单数个或复数个基指针寄 存器用于表示向所述基指针寄存器对应的存储空间不可写入。举例而言,当对指令译码得到的对应于执行结果的基指针寄存器号对应的地址寄 存器是用于表示不可写入的,那么所述执行结果不会被真正写入所述零级存储器中,即所 述执行结果被舍弃。本发明所述的第二存储器中的一部分可以作为执行结果的暂存空间,对所述暂存 空间的内容不做写回第一存储器的操作。所述第二存储器中的暂存空间中的内容只供运算 单元执行后续指令时作为操作数使用。在所述处理器体系结构中,还可以指定单数个或复数个基指针寄存器号,使所述 基指针寄存器对应第二存储器中的存储空间为暂存空间,对所述暂存空间的内容不做写回第一存储器的操作。所述第二存储器中的暂存空间中的内容为中间结果只供运算单元执行 后续指令时作为操作数使用。所述处理器体系结构也可以具有用于暂存执行结果的计算/转移/状态寄存器。 所述计算/转移/状态寄存器中的内容只供执行后续指令时判断转移条件、读写处理器状 态或进行后续指令运算时作为操作数使用。在传统的处理器体系结构中,用于暂存执行结果的寄存器中的值是可以被写回到 存储器中的,用于暂存执行结果的存储器中的内容也可以被写回到更低存储层次的存储器 中。根据本发明技术方案,所述暂存空间或计算寄存器的内容可以不被写回到第一存储器, 因此也就不会被写回到更低存储层次,可以降低具体设计的复杂度,并提高处理器整体效率。本所述的处理器体系结构中还可以有基指针模式寄存器。所述基指针模式寄存 器也可以作为线程寄存器用于表示当前运行的线程的号码。根据本发明技术方案,可以将 基指针寄存器分为复数组供不同的处理器线程使用,所述基指针模式寄存器中的不同值对 应基指针寄存器的不同组别,所述基指针模式寄存器中每个模式代表一个线程。此时所述 基指针模式寄存器中内容就是线程号码(PID)。在不同线程对应的指令与数据都能被明确 区分的情况下(如发明“一种低缺失率、低缺失惩罚的缓存方法和装置”,中国专利申请号 200910247204. 4),采用本发明技术方案可以实现线程的快速切换。本所述的复数组基指针寄存器的数量与所述基指针模式寄存器中能表示的模式 的个数、即模式寄存器位宽有关。举例而言,两者关系可以是所述复数组的数量等于以2 为底、以所述基指针模式寄存器位宽为幂的数。本所述的处理器体系结构中还可以有个数等于所述处理器体系结构能支持的最 大线程数的复数组处理器状态寄存器组,用于在线程切换时保存处理器状态,并提供与新 线程配套的处理器状态。所述基指针模式寄存器中的不同值对应不同的处理器状态寄存器组。在传统处理器体系结构中,一旦需要切换线程,必须将原线程的状态保存到存储 器中或专用的状态寄存器中,再切换成新的线程,并将事先储存的状态恢复后才能执行新 线程中的指令。本发明所述体系结构可以在切换线程的同时保存并更新状态,以满足快速 线程切换的要求。当所述处理器中有所述基指针模式寄存器时,可以具有用于装载所述基指针模式 寄存器的指令。所述用于装载所述基指针模式寄存器的指令可以是专门的基指针模式装载 指令,也可以是与所述基地址装载指令相同操作码、但目标寄存器号不同的指令。根据本发明所述技术方案,使用基指针模式寄存器可以增加对应操作数或执行结 果的当前可用的基地址的数量,减少基地址的装载次数及对应在所述零级存储器中数据写 回所述存储层次中较低层次的次数,能提高效率。本发明所述处理器体系结构中的全部指令可以都不包含存储数据的通用寄存器 号,可以包含基指针寄存器号和偏移地址,也可以只包含偏移地址。所述指令格式中可以不明示基指针寄存器号,此时基地址是默认的。例如指令中 的基指针寄存器号和偏移地址的位置可以一同被用于构成更长长度的偏移地址。但此时相 应的基地址寄存器依然存在并可以被基地址装载/存储指令装载或读出,此时在所述基地址寄存器中的基地址就是在读取操作数或写回执行结果时默认的基地址,不需要在运算指 令中明示。本发明所述体系结构的处理器可应用于上海芯豪微电子有限公司的发明 “基于单一指令集微处理器运算单元的可配置多核/众核系统”(中国专利申请号 200810203778. 7)、“针对多核/众核处理器程序分割的后编译系统”(中国专利申请号 200810203777. 2)、“一种数据处理的方法与装置”(中国专利申请号200910046117. 2)、“一 种数据处理的方法与装置”(中国专利申请号200910208432. 0),构成前一个处理器的执行 结果直接作为输入送给后一个处理器的串行连接多核结构,所述串行连接多核结构中的每 个处理器分别执行完整程序的一部分,所有处理器接力实现完整程序的功能。所述处理器 核均没有寄存器堆,也没有将操作数从存储器装载到寄存器堆或将执行结果从寄存器堆存 储到存储器的指令。当由基于传统体系结构的处理器构成串行连接多核结构时,数据可以由装载和存 储指令通过两个处理器核之间的共享存储器进行传递,但前一个处理器核中通用寄存器堆 的值必须通过额外的存储、装载指令,或通过专门的数据通道传递到后一个处理器核的通 用寄存器堆中,使所述后一个处理器核能在与前一个处理器核相同状态的前提下进行后续 的程序执行。当采用基于本发明所述处理器体系结构的处理器构成串行连接多核结构时,由于 处理器内部没有传统体系结构中的通用寄存器,每个处理器的所有执行结果都被直接传递 所述处理器与后一个处理器之间共享的零级存储器中,因此能更高效率地实现所述串行连 接多核结构。本发明所述处理器体系结构的流水线段可以依次为(1)指令读取段,从指令存储器读取指令;(2)指令译码段,指令译码,得到操作数地址信息;(3)数据读取段,根据指令里包含的操作数地址信息从零级存储器中读出单数个 或复数个操作数;(4)执行段,运算器执行指令定义的运算;操作数可以是从零级存储器中读出的 单数个或复数个操作数,或者是从指令译码得到的单数个或复数个立即数;(5)数据写回段,根据指令指定的地址信息将执行结果写入零级存储器。对于上述任意一种流水线,若零级存储器不能在提供操作数的同时被写入,则可 以在数据写回段将执行结果写入第二存储器,当第一存储器用来接收第二存储器送来的数 据的输入端口有空闲时,第二存储器将存储的数据依次写回第一存储器。根据本发明技术方案,可以直接用基指针寄存器号与偏移地址对第一存储器进行 索引寻址,因此可以将上述的指令译码段和数据读取段合并为译码取数段,使流水线更为 紧凑。本发明所述处理器体系结构的流水线段还可以依次为(1)指令读取段,从指令存储器读取指令;(2)译码取数段,指令译码,并根据指令里包含的操作数地址信息从零级存储器中 读出单数个或复数个操作数;(3)执行段,运算器执行指令定义的运算;操作数可以是从零级存储器中读出的单数个或复数个操作数,或者是从指令译码得到的单数个或复数个立即数;(4)数据写回段,根据指令指定的地址信息将执行结果写入零级存储器。上述两种流水线的共性都在于没有使用寄存器堆,都支持复数个流水线段同时对 同一个存储器进行取操作数或写回执行结果的访问,可以是同时进行单数个或复数个数据 的读取和写回。在上述两种流水线结构的基础上增加流水线段依然属于本发明技术方案的 一部分。有益效果本发明所述处理器体系结构及基于所述体系结构实现的处理器与现有的体系结 构及对应的传统处理器相比,没有对操作数的装载、存储指令。根据统计,在传统处理器的 程序中,装载和存储指令占程序中指令总数30%左右,由于本发明所述处理器没有这类指 令,因此能提高程序运行效率及程序代码的密度。


虽然该发明可以以多种形式的修改和替换来扩展,说明书中也列出了一些具体的 实施图例并进行详细阐述。应当理解的是,发明者的出发点不是将该发明限于所阐述的特 定实施例,正相反,发明者的出发点在于保护所有基于由本权利声明定义的精神或范围内 进行的改进、等效转换和修改。图1是本发明所述体系结构的基本实施例。图2是本发明所述体系结构的改进实施例。图3是本发明所述处理器体系结构中第二存储器的一种具体实现的实施例。图4是本发明所述处理器体系结构中处理器运算单元与零级存储器连接方式的8 种实施例。图5是本发明所述处理器体系结构对应流水线划分的两种实施例。图6是本发明所述处理器体系结构指令集中指令格式的实施例。图7是基于本发明所述处理器体系结构的处理器构成的串行连接多核结构的实 施例。
具体实施例方式图1是本发明所述体系结构的基本实施例。图1(a)中的零级存储器(100)向处 理器核(CPU core) (101)提供两个操作数(111、112),并接受处理器核的执行结果(114), 零级存储器(100)由处理器核产生的地址(11 寻址。图2是本发明所述体系结构的改进实施例。图2(a)和图2(b)中的零级存储器 (100)向处理器核(101)提供两个操作数(111、112),并接受处理器核的执行结果(114), 零级存储器(100)由处理器核产生的地址(11 寻址。图2(a)显示了零级存储器重填 (refill)的途径,其中从更低级存储器来的重填总线(116)将重填数据从低级存储器传输 到零级存储器(100),选择器(115)选择将重填总线(116)或处理器核给出总线(114)上的 数据送给零级存储器。图2(b)与图2(a)类似,差别在零级存储器(1001)有两个写入,重填 总线(116)与结果总线(114)各自接到自己的写口。后续图例为便于说明起见,不再列出 重填路径。大规模三端口存储器的成本较高,图2(c)中零级存储器由一个只有一个读口和一个写口,或者只有一个读/写口的第一存储器(100 与一个后置的第二存储器(102)构 成,协作完成如图1、图2(a)和图2(b)中三端口存储器的同样功能。此例中处理器核(101) 提供地址(11 供第一存储器(100 及第二存储器(10 寻址。处理器核(101)的执行 结果通过总线(117)存入第二存储器(102)。第一存储器(1002)通过总线(111)提供一个 操作数给处理器核(101),第二存储器(102)通过总线(112)提供另一个操作数(即以前运 算的结果)给处理器核(101)。当第一存储器(1002)的写口有空闲时,暂存在第二存储器 (102)中的结果也可通过总线(112)写回至第一存储器(1002)。请参阅图3,本实施例为本发明所述处理器体系结构中第二存储器的一种具体实 现的实施例。在本实施例中,地址通过写地址总线(1401)写入指定项。两个取地址总线(1410、 1402)可同时输入两个地址与地址存储器所有项进行比较,产生的比较结果(140 控制数 据存储器的相应项将对应数据取出到取数据总线(1404)和取数据总线(1411)上。数据通 过写数据总线(1405)写入指定项。指向当前写入项的写指示器(1406)为FIFO结构,以实 现多项的连续写入。数据通过读数据总线(1407)读出,对应的地址通过读地址总线(1409) 读出。指向当前读出项的读指示器(1408)亦为FIFO结构,以实现多项的连续读出。读写 机制保证所有项的读出值一定为写入的最新值。根据本发明技术方案,对第二存储器进行写融合匹配需要对每个地址额外增加一 个比较器,所述比较器在本实施例中被省略。图4是本发明所述处理器体系结构中处理器运算单元与零级存储器连接方式的8 种实施例。在图4(a)中,与处理器运算单元(30 连接的零级存储器由第一存储器(301)和 第二存储器(303)组成。运算单元(302)需要两个操作数,并产生一个执行结果。在本实 施例中,第一存储器(301)支持同时提供或接收两个数据。第一存储器(301)可以是四端 口的存储器,即具有两组输出数据总线和两组输入数据总线,且支持同时输出两组数据、或 同时输入两组数据、或同时输入一组数据并输出一组数据;第一存储器(301)也可以是两 端口的存储器,即具有两组输入/输出数据总线,支持同时输出两组数据、或同时输入两组 数据、或同时输入一组数据并输出一组数据。第二存储器(30 支持同时提供三个输出数 据(316、317、318)并接收一个输入数据(315),是四端口的存储器。第一存储器(301)和第 二存储器(30 所需数据寻址地址均由运算单元(30 产生。为便于描述,下面将以第一 存储器(301)是四端口的存储器为例进行说明,当第一存储器(301)是两端口的存储器时, 情况类似。运算单元(302)所需的一个操作数(313)的来源可以是第一存储器(301)的输出 数据(308)或第二存储器(303)的输出数据(316),经多路选择器(306)选择得到;另一个 操作数(314)的来源可以是第一存储器(301)的输出数据(310)或第二存储器(303)的输 出数据(317),经多路选择器(307)选择得到。运算单元(302)的执行结果(315)作为输入 数据送到第二存储器(303)。第一存储器(301)的一个输入数据(309)的来源可以是从外部存储器读取来的数 据(31 或从第二存储器(30 来的输出数据(318),经多路选择器(304)选择得到;另一 个输入数据(311)的来源可以是从外部存储器读取来的数据(31 或从第二存储器(303)来的输出数据(318),经多路选择器(30 选择得到。第一存储器(301)的两个输出数据 (308,310)分别送往与运算单元(30 连接的两个多路选择器(306、307)。第二存储器(303)的输入数据(31 来自运算单元的输出。第二存储器(303) 的一个输出数据(318)送往与第一存储器(301)连接的多路选择器(304)和多路选择器 (305);另外两个输出数据(316、317)分别送往与运算单元(30 连接的两个多路选择器 (306,307)。对所述第二存储器的寻址是通过地址信息的匹配来实现的,并不是通过地址进 行索引(index)寻址。在本实施例中,运算单元最初只能从第一存储器(301)获得操作数,并将执行结 果写入第二存储器(303)。由于之前运算的结果通常会被用做后续运算的操作数,因此,之 后的部分运算会从第二存储器(30 获得部分或全部操作数,并将执行结果写入第二存储 器(30 。当运算单元从第二存储器(30 取操作数时,第一存储器(301)可以进行从外部 存储器获取新数据的操作,或将第二存储器(30 送来的数据写入第一存储器(301)。如此 即可根据本发明技术方案,实现存储器不经过寄存器堆而直接向运算单元提供操作数并写 回执行结果。图4(b)与图4(a)在结构上基本类似,差别在于第二存储器(3031)支持同时提供 两个输出数据(317、3181)并接收一个输入数据(315),是三端口的存储器,且外部存储器 的输入数据(3121)不与第二存储器(3031)的输出数据(3181)选择,直接送到第一存储器 (301)的输入端口。此外第二存储器(3031)的输出数据(3181)直接送到第一存储器(301) 的另一个输入端口及与运算单元(30 连接的多路选择器(306)。在本实施例中,运算单元最初只能从第一存储器(301)获得操作数,并将执行结 果写入第二存储器(3031)。之后的部分运算会从第二存储器(30 获得部分或全部操作 数,并将执行结果写入第二存储器(303)。当运算单元(30 选择第二存储器(3031)的输 出数据(3181)为操作数(313)时,输出数据(3181)同时被写回第一存储器(301);当运算 单元(30 选择第二存储器(3031)的输出数据(317)为操作数(314)时,外部存储器的输 入数据(3121)可以被同时写入第一存储器(301)。如此即可根据本发明技术方案,实现存 储器不经过寄存器堆而直接向运算单元提供操作数并写回执行结果。图4(c)与图4(a)在结构上基本类似,差别在于第一存储器(3011)支持同时提供 两个数据,或同时提供一个数据并接收一个数据,且外部存储器的输入数据(312 和第二 存储器(30 的输出数据(318 均只送到与第一存储器(3011)连接的多路选择器(305), 经选择后作为第一存储器(301)的输入数据(311)。在本实施例中,从外部存储器或第二存储器(30 写回第一存储器(3011)的途径 少了,但第一存储器(3011)的结构更为简单,且能够实现存储器不经过寄存器堆而直接向 运算单元提供操作数并写回执行结果。图4(d)与图4(b)在结构上基本类似,差别在于第一存储器(3012)在一个时刻只 支持提供一个数据,或接收一个数据,且接收的输入数据来源是从外部存储器来的输入数 据(3122),或第二存储器(3031)的输出数据(3183),经多路选择器(30 选择得到。此外, 第二存储器(3031)的输出数据(3171)被分别送往与运算单元(30 连接的两个多路选择 器(306、307)作为可能的操作数。由于处理器支持的指令中有些是单操作数指令,还有一些指令中只有一个操作数
13来源于存储器,另一个来源于指令解码得到的立即数,因此并不是每条指令都需要从存储 器获取两个操作数。在本实施例中,运算单元(302)最初可以执行上述只需要从存储器获 取一个操作数的指令,即从第一存储器(3012)获取一个操作数,并将执行结果写入第二存 储器(3031);或通过运算单元(30 将操作数从第一存储器(301 移动(move)到第二 存储器(3031),之后的部分运算会从第二存储器(3031)获得部分或全部操作数,并将执行 结果写入第二存储器(3031)。第一存储器(301 不支持同时读写数据,因此当运算单元 (302)不需要从第一存储器(3012)获取操作数时,第一存储器(3012)可以写入从外部存储 器来的输入数据(312 或从第二存储器(3031)来的输出数据(318 。如此即能实现存储 器不经过寄存器堆而直接向运算单元提供操作数并写回执行结果。图4(e)与图4(d)在结构上基本类似,差别在于第二存储器(3032)只支持同时 提供一个输出数据(3184)并接收一个输入数据(315),是两端口的存储器。此外,第二存 储器(3032)的输出数据(3184)被送往运算单元(302)作为一个操作数,并被送往与运算 单元(30 连接的多路选择器(307)作为可能的另一个操作数,以及被送往与第一存储器 (3012)连接的多路选择器(305)作为可能的输入数据。在本实施例中,第二存储器(303 无法同时向运算单元(30 提供两个不同的操 作数,因此一旦执行到需要从存储器获取两个不同的操作数的指令时,必须由第一存储器 (3012)和第二存储器(3032) —同提供操作数。这样减少了数据从第二存储器(3032)写回 第一存储器(3012)的机会,但简化了设计的复杂度,本实施例在单操作数指令出现频率较 高的情况下是有优势的。图4(f)与图4(e)在结构上基本类似,差别在于增加了一个较小的在功能上类似 旁路缓冲(look aside buffer)的第三存储器(320)。第三存储器也具有地址匹配功能,根 据本发明技术方案,在从第一存储器(301 读取数据之前会先在第三存储器(320)中进行 寻址匹配,只有当第三存储器(320)中没有所需数据,才会从第一存储器(301 读取。第 三存储器(320)的寻址地址同样由运算单元(30 产生,接收来自第一存储器(301 的输 出数据(310)作为自身的输入数据,并将输出数据(3081)送往与运算单元(302)连接的多 路选择器(306)作为可能的操作数。当运算单元(302)需要从第一存储器(3012)获得两 个操作数时,根据本发明技术方案,将其中一个操作数从第一存储器(301 读出暂存到第 三存储器(320),下一周期由第一存储器(301 和第三存储器(320) —同提供所需的两个 操作数。这种情况类似于处理器流水线等待一个周期。此外,第二存储器(303 的输出数 据(318 被分别送往与运算单元(30 连接的多路选择器(306、307)作为可能的操作数, 并被送往与第一存储器(3012)连接的多路选择器(305)作为可能的输入数据。本实施例是对图4(e)实施例的一种改进。第三存储器(320)可以暂存第一存储 器(3012)的输出数据(310)。之后,当指令需要从第一存储器(3012)获取同样操作数时, 可以从第三存储器(320)输出该操作数,使第一存储器(301 能有空闲写入来自第二存储 器(303 的输出数据(3185),从而适应更广泛的程序。图4(g)与图4(d)在结构上基本类似,差别在于第一存储器(3012)的输出数据 (3101)除了被送往与运算单元(30 连接的多路选择器(307)作为可能的操作数外,还与 从运算单元输出的执行结果(315 —同被送往与第二存储器(3031)连接的多路选择器 (3153),经选择后得到第二存储器(3031)的输入数据(3151)。
本实施例是对图4(d)和图4(f)实施例的一种改进。在本实施例中,第一存储器 (3012)中的数据能够不经过运算单元(30 直接旁路写入第二存储器(3031),避免了对运 算单元(302)的占用,因此能更好地提高运算单元(302)的利用率。此外本实施例不需要 用到第三存储器,本质上是将第三存储器合并到第二存储器(3031)中,简化了设计并节省 了面积。图4(h)与图4(a)在结构上基本类似,差别在于第一存储器由两个大小不同的存 储器(321)和存储器(32 构成,这两个存储器都只支持同时提供一个数据或接收一个数 据。存储器(321)的输出数据(308 被送往与运算单元(30 连接的多路选择器(306) 作为可能的操作数;存储器(322)的输出数据(310)被送往与运算单元(30 连接的另一 个多路选择器(307)作为可能的另一个操作数。同时存储器(321)的输入数据来源除了从 外部存储器来的输入数据(31 和第二存储器(303)的输出数据(318)外,还可以是存储 器(32 的输出数据(3101),三者经多路选择器(3041)选择后得到实际写入存储器(321) 的输入数据(3091)。在本实施例中,存储器(321)和存储器(322)结构都比较简单,易于实现。存储器 (322)储存了图4(a)实施例中第一存储器(301)中的全部数据,存储器(321)通过从存储 器(32 写入存储器(321)的方式储存了存储器(322)中当前使用率较高的一部分数据, 这样保证了运算单元(302)可以从不同的存储器中获取任意需要的操作数。在本实施例 中,所述当前使用率较高的一部分数据是当前基指针寄存器指向的数据段。此时,若要将数 据写入第一存储器,则必须对存储器(321)和存储器(32 各自对应地址写入同样的数据, 若要读出数据,则可以根据需要从两个存储器中同时读出相同或不同的数据。图5是本发明所述处理器体系结构对应流水线划分的两种实施例。图5(a)中,流水线为5段流水线,分别是指令读取(I) (501)、指令译码(D) (502)、 数据读取(R) (503)、执行(E) (504)和数据写回(W) (505)。在本实施例中,零级存储器由 第一存储器和第二存储器构成,其中第一存储器采用与现有缓存类似的标志(tag)匹配结 构。在指令读取段(501),进行指令标志匹配(507),并同时读取指令,再根据指令标 志的匹配结果得到正确的指令。在指令译码段(502),在第二存储器中对需要读取的数据的地址信息进行读匹配 (512),同时将所述地址信息中的基地址和偏移地址相加以获得完整的数据地址(513)。在数据读取段(503),如果指令译码段(502)的地址信息匹配成功,则可以直接从 第二存储器中读取到所需的数据(514);如果匹配不成功,则用指令译码段(502)产生的完 整数据地址进行数据读标志匹配(515),并对第一存储器进行索引寻址以读取所需的数据 (516),再根据数据标志的匹配结果得到正确的数据。在本流水线段中,从第二存储器中读 取数据的操作(514)与数据读标志匹配(515)、从第一存储器中读取数据的操作(516)也可 以同时进行,在增加一些功耗的情况下提高一些性能。在执行段(504),除运算器执行指令定义的运算(517)外,第二存储器对执行结果 将被写入的地址进行写融合匹配(519),同时将执行结果地址信息中的基地址和偏移地址 相加以获得完整的数据地址(518)。在写回段(505),执行结果被写入第二存储器(520)。此后,当第一存储器用来接收第二存储器送来的数据的输入端口有空闲时,第二存储器将存储的数据依次经数据标志 匹配后写回第一存储器。根据本发明技术方案,也可以对所述流水线进行部分改进。可以在指令读取段 (501)之前进行指令标志匹配、在数据读取段(50 前进行数据读标志匹配,从而在指令读 取段(501)和数据读取段(50 有更充分的时间用于访问第一存储器。此外,也可以在指 令中不含有基指针寄存器号、第一存储器的容量足够容纳所有数据的情况下不进行数据标 志的匹配。图5(b)是将本发明技术方案应用于发明“一种低缺失率、低缺失惩罚的缓存方法 和装置”(中国专利申请号200910M7204. 4)的流水线实施例。本实施例的流水线与图5 (a) 中的流水线类似,也分为指令读取段(501)、指令译码段(521)、数据读取段(503)、执行段 (522)和数据写回段(505)。在指令读取段(501),从指令存储器读取指令。在指令译码段(521),在第二存储器中对需要读取的数据的地址信息进行读匹配, 同时用包含基地址和偏移地址的地址信息直接在第一存储器中进行读数据的寻址(523)。在数据读取段(503),如果指令译码段(521)的地址信息匹配成功,则可以直接从 第二存储器中读取到所需的数据;如果匹配不成功,则从第一存储器读取所需的数据。在执行段(52 ,除运算器执行指令定义的运算外,第二存储器对执行结果将被写 入的地址进行写融合匹配,同时用包含基地址和偏移地址的地址信息直接在第一存储器中 进行写数据的寻址(5M)。在写回段(505),执行结果被写入第二存储器。此后,当第一存储器用来接收第二 存储器送来的数据的输入端口有空闲时,第二存储器将存储的数据依次根据基地址和偏移 地址寻址写回第一存储器。本实施例与图5(a)实施例的差别在于由于采用了不同于传统缓存结构的第一存 储器,在指令译码段(521)和数据读取段(50 不需要计算得到完整的地址,而是可以直接 在第一存储器中用包含基地址和偏移地址的地址信息进行寻址(523、5M),使设计更为简
单、高效。图6是本发明所述处理器体系结构指令集中指令格式的实施例。为了便于说明, 本实施例仅列举了两种指令格式,省略了其他几种可能格式。图6(a)是三操作数指令的格式。操作数一和操作数二为运算单元执行的输入,操 作数三为运算单元执行的结果。所述三操作数指令由指令码(601)、第一个基指针寄存器号 (602)、第一个偏移地址(603)、第二个基指针寄存器号(604)、第二个偏移地址(605)、第三 个基指针寄存器号(606)和第三个偏移地址(607)构成,其中基指针寄存器号(602)中对 应的基地址加上偏移地址(60 可以得到操作数一的地址,基指针寄存器号(604)中对应 的基地址加上偏移地址(60 可以得到操作数二的地址,基指针寄存器号(606)中对应的 基地址加上偏移地址(607)可以得到执行结果的地址。对于两操作数指令,也可以具有类 似的、但少一组基指针寄存器号和偏移地址的指令格式。图6(b)是立即数指令或条件转移指令的格式。在本实施例中,立即数指令的指 令格式与三操作数指令格式的差别在于前者只需要从存储器获取一个操作数并写入执行 结果,另一个操作数来源于指令中的立即数,因此立即数指令由立即数(608)、第二个基指针寄存器号(604)、第二个偏移地址(605)、第三个基指针寄存器号(606)和第三个偏移地 址(607)构成,操作数和执行结果地址的产生与图6(a)实施例相同。条件转移指令只需 要从存储器获取两个操作数,而不必有写回操作,因此指令格式也由立即数(即转移偏移 量)(608)、第二个基指针寄存器号(604)、第二个偏移地址(605)、第三个基指针寄存器号 (606)和第三个偏移地址(607)构成,操作数和执行结果地址的产生与图6(a)实施例相同。 对于无条件转移指令,可以有专门的指令格式,也可以将其视为条件转移指令的特例,即转 移条件始终成立的条件转移指令,在具体的指令格式上,可以对第二和第三个基指针寄存 器号给予同样的值,并对第二和第三个偏移地址给予同样的值。对于基地址装载指令,可以用一组基指针寄存器号及偏移地址对存储器寻址得到 的数据写入另一个基指针寄存器号对应的基指针寄存器中。根据本发明所述技术方案,还 可以有同时装载两组基地址的基地址装载指令,即在指令格式中包含四个基指针寄存器号 和两个偏移地址,同时用两组基指针寄存器号及偏移地址对存储器寻址得到两组数据写入 另外两个基指针寄存器号对应的基指针寄存器中,所述另外两个基指针寄存器号在指令中 的位置可以是图6(b)指令格式中的立即数(608)的位置。此外,所述指令格式中可以不明示基指针寄存器号,此时基地址是默认的。例如图 6(b)指令格式中第三个基指针寄存器号(606)和第三个偏移地址(607)的位置可以全部用 于构成更长长度的偏移地址。但此时基地址寄存器依然是存在并可以被基地址装载/存储 指令装载或读出,只是没有在指令中被明示。需要注意的是,本发明所述处理器体系结构指令集中的指令格式并不仅限于本实 施例中列举的指令格式,其他的指令格式也与此相似。图7是基于本发明所述处理器体系结构的处理器构成的串行连接多核结构的实 施例。处理器核(1101)由本地指令存储器(1103)、运算单元(1105)、数据地址产生模块 (1107)、程序计数器(1108)、输出缓冲(1110)以及零级存储器组成。所述零级存储器由第 一存储器(110 和第二存储器(1109)组成。第一存储器(1104)是接在处理器核(1101) 后一级的处理器核对应的零级存储器的一部分。本地指令存储器(110 存储有处理器核(1101)执行所需的指令。处理器核 (1101)中运算单元(1105)所需的操作数可以来自第一存储器(1102)、第二存储器(1109)、 第一存储器(1104),或来自指令中的立即数;执行结果写回第二存储器(1109)。在本实施例中,处理器核对应的第一存储器(110 中的数据、第二存储器(1109) 中的数据(1115)、后一个处理器核对应的第一存储器(1104)中的数据和外部的共享存 储器中的数据(1111)通过多路选择器(1116、1117)选择后,作为操作数输入到运算单元 (1105)中。第二存储器(1109)接收的数据有三个来源从运算单元(110 来的数据、从第 一存储器(110 来的数据、以及从外部的共享存储器来的数据(1111)。所述从运算单 元(110 来的数据、从第一存储器(110 来的数据、以及从外部的共享存储器来的数据 (1111)通过多路选择器(1112)选择后输入到第二存储器(1109)。在本实施例中,第一存储器只接收从前一处理器核中的第二存储器来的数据输 入。如第一存储器(1104)接收来自处理器核(1101)中第二存储器(1109)来的数据输入 (1118)。
第一存储器(110 接收的地址也有三个来源从前级处理器核第二存储器中地 址存储部分来的用于存储数据的地址、从前级处理器核数据地址产生模块来的用于读取数 据的地址、从本级处理器核数据地址产生模块(1107)来的用于读取数据的地址。上述地址 通过多路选择器选择后,输入到第一存储器(110 中的地址接收模块。相应地,第一存储器(1104)接收的地址有三个来源从前级处理器核第二存储 器(1109)中地址存储部分来的用于存储数据的地址、从前级处理器核数据地址产生模块 (1107)来的用于读取数据的地址、从本级处理器核数据地址产生模块来的用于读取数据的 地址(111 。上述地址通过多路选择器(1114)选择后,输入到第一存储器(1104)中的地 址接收模块。根据本发明技术方案,在本实施例中,处理器核(1101)的前一级处理器核的执行 结果会被写入第一存储器(110 ;第一存储器(110 能够直接向处理器核(1101)的运 算单元(110 提供操作数,或直接将数据旁路到第二存储器(1109);运算单元(1105)的 执行结果可以被直接写入第二存储器(1109)。第二存储器(1109)能根据地址产生模块 (1107)产生的地址输出数据(1115)作为操作数供运算单元(1105)使用。本实施例实现的 是多个处理器核构成的串行连接多核结构,因此第二存储器(1109)并不需要将数据写回 处理器核(1101)对应的第一存储器(1102),而是将数据写入后一个处理器核对应的第一 存储器(1104),从而实现数据的传递。
权利要求
1.一种处理器体系结构,其特征在于运算单元直接从存储器取得操作数、并将执行结 果写回存储器,此外还包含下列部分特征或全部特征(1)没有寄存器堆(RegisterFile);(2)没有将操作数从存储器装载(load)到寄存器堆的指令;(3)没有将执行结果从寄存器堆存储(store)到存储器中的指令;(4)对存储器的寻址方式包括立即数直接寻址、基地址加偏移量方式寻址。
2.根据权利要求1所述的处理器体系结构,其特征在于支持复数个流水线段同时对逻 辑意义上的同一个存储器进行取操作数或写回执行结果的访问,可以是同时进行单数个或 复数个数据的读取和写回。
3.根据权利要求1所述的处理器体系结构,其特征在于基于所述处理器体系结构构成 的处理器包含零级存储器;所述零级存储器具有同时支持读取至少两个数据并写回至少一 个数据的功能,可以由一个单独的多端口存储器构成,也可以由复数个单端口或多端口存 储器构成。
4.根据权利要求3所述的处理器体系结构,其特征在于当所述零级存储器由复数个单 端口或多端口存储器构成时,所述多端口存储器至少由一个具有单数个端口或复数个端口 的第一存储器和一个具有复数个端口的第二存储器构成。
5.根据权利要求3所述的处理器体系结构,其特征在于当所述零级存储器由复数个单 端口或多端口存储器构成时,所述多端口存储器还可以包括一个具有单数个端口或复数个 端口的第三存储器,用于暂存第一存储器的输出数据,以供运算单元获取操作数。
6.根据权利要求4所述的处理器体系结构,其特征在于所述第一存储器或第二存储器 可以由复数个大小相同或不同的存储器构成;当所述第一存储器由复数个不同大小的存储 器构成时,较小的存储器可以存有较大的存储器中的一部分数据。
7.根据权利要求4所述的处理器体系结构,其特征在于所述第二存储器具有以下特征(1)用于存储操作数及所述操作数对应的地址信息;所述地址信息可以是地址值,也 可以是基地址值及偏移量;还可以是基指针寄存器号及偏移量;(2)所述用于存储操作数的操作数存储单元与用于存储操作数地址的地址信息存储单 元--对应;(3)具有读、写指针,可以按特定算法写入或读出操作数;(4)可以将单数个或复数个输入地址信息与存储的地址信息进行匹配,并输出匹配成 功的单数个或复数个对应操作数;所述输入地址信息可以是地址值,也可以是基地址值及 偏移量,还可以是基指针寄存器号及偏移量。
8.根据权利要求4所述的处理器体系结构,其特征在于所述第二存储器还可以具有写 融合(write merge)功能,即被写入的数据对应的地址信息在所述第二存储器中已存在,则 可以将所述写入的数据替换部分或全部已存在的数据。
9.根据权利要求1所述的处理器体系结构,其特征在于基于所述处理器体系结构构成 的处理器还可以包含基指针(BP,Base Pointer)寄存器,用于存储对零级存储器进行的以 基地址加偏移量方式寻址时的基地址。
10.根据权利要求3、9所述的处理器体系结构,其特征在于每个有效的基指针寄存器存储与所述零级存储器中的一部分数据存储单元对应的基地址;若所述第二存储器存储的 地址信息是基指针寄存器号及偏移量、且所述有效的基指针寄存器的内容被改写后,第二 存储器中对应于基指针寄存器原基地址的数据存储单元中的数据应被无效化;若所述数据 存储单元中的数据应该但还没有写回第一存储器时,则需要先将被更改过的数据写回第一 存储器后再被无效化。
11.根据权利要求9所述的处理器体系结构,其特征在于所述处理器体系结构的指令 中不同的操作数或执行结果可以共用同一组基指针寄存器,也可以具有各自独立或部分独 立的基指针寄存器;所述基指针寄存器可以全部用来存储基地址,也可以有单数个或复数 个基指针寄存器用于表示向所述基指针寄存器对应的存储空间不可写入。
12.根据权利要求3、9所述的处理器体系结构,其特征在于所述第二存储器中的一部 分可以作为执行结果的暂存空间,对所述暂存空间的内容不做写回第一存储器的操作;在 所述处理器体系结构中,还可以指定单数个或复数个基指针寄存器号,使所述基指针寄存 器对应第二存储器中的存储空间为暂存空间,对所述暂存空间的内容不做写回第一存储器 的操作;所述第二存储器中的暂存空间的内容只供运算单元执行后续指令时作为操作数使 用;所述处理器体系结构也可以具有用于暂存执行结果的计算/转移/状态寄存器;所述 计算/转移/状态寄存器中的内容只供执行后续指令时判断转移条件、读写处理器状态或 进行后续指令运算时作为操作数使用。
13.根据权利要求3所述的处理器体系结构,其特征在于还可以有基指针模式寄存器; 当基指针寄存器被分为复数组供不同的处理器线程使用时,所述基指针模式寄存器中的不 同值对应基指针寄存器的不同组别;所述基指针模式寄存器中每个模式代表一个线程。
14.根据权利要求13所述的处理器体系结构,其特征在于还可以有个数等于所述 处理器体系结构能支持的最大线程数的复数组处理器状态寄存器组(processor status registers),用于在线程切换时保存处理器状态,并提供与新线程配套的处理器状态;所述 基指针模式寄存器中的不同值对应不同的处理器状态寄存器组。
15.根据权利要求3、9所述的处理器体系结构,其特征在于所述处理器体系结构中的 全部指令可以都不包含存储数据的通用寄存器号,可以包含基指针寄存器号和偏移地址, 也可以只包含偏移地址。
16.根据权利要求1所述的处理器体系结构,其特征在于基于所述体系结构的处理器 可以构成前一个处理器核的执行结果直接作为输入送给后一个处理器核的串行连接多核 结构,所述串行连接多核结构中的每个处理器核分别执行完整程序的一部分,所有处理器 接力实现完整程序的功能;所述处理器核均没有寄存器堆,也没有将操作数从存储器装载 到寄存器堆或将执行结果从寄存器堆存储到存储器的指令。
17.根据权利要求1所述的处理器体系结构,其特征在于流水线段可以依次为(1)指令读取段,从指令存储器读取指令;(2)指令译码段,指令译码,得到操作数地址信息;(3)数据读取段,根据指令里包含的操作数地址信息从零级存储器中读出单数个或复 数个操作数;(4)执行段,运算器执行指令定义的运算;操作数可以是从零级存储器中读出的单数 个或复数个操作数,或者是从指令译码得到的单数个或复数个立即数;(5)数据写回段,根据指令指定的地址信息将执行结果写入零级存储器。
18.根据权利要求1所述的处理器体系结构,其特征在于流水线段还可以依次为(1)指令读取段,从指令存储器读取指令;(2)译码取数段,指令译码,并根据指令里包含的操作数地址信息从零级存储器中读出 单数个或复数个操作数;(3)执行段,运算器执行指令定义的运算;操作数可以是从零级存储器中读出的单数 个或复数个操作数,或者是从指令译码得到的单数个或复数个立即数;(4)数据写回段,根据指令指定的地址信息将执行结果写入零级存储器。
全文摘要
一种可以从存储器直接向运算单元提供操作数,并将运算单元执行结果写回存储器的处理器体系结构,没有对操作数的装载(load)、存储(store)指令,能提高程序运行效率及程序代码的密度。
文档编号G06F9/34GK102141905SQ201010104030
公开日2011年8月3日 申请日期2010年1月29日 优先权日2010年1月29日
发明者任浩琪, 林正浩 申请人:上海芯豪微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1