CN111061510B - 一种可扩展的asip结构平台及指令处理方法 - Google Patents

一种可扩展的asip结构平台及指令处理方法 Download PDF

Info

Publication number
CN111061510B
CN111061510B CN201911289054.3A CN201911289054A CN111061510B CN 111061510 B CN111061510 B CN 111061510B CN 201911289054 A CN201911289054 A CN 201911289054A CN 111061510 B CN111061510 B CN 111061510B
Authority
CN
China
Prior art keywords
instruction
cluster
packet
execution
emu
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.)
Active
Application number
CN201911289054.3A
Other languages
English (en)
Other versions
CN111061510A (zh
Inventor
陈虎
万江华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Guliang Microelectronics Co ltd
Original Assignee
Hunan Guliang Microelectronics Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Guliang Microelectronics Co ltd filed Critical Hunan Guliang Microelectronics Co ltd
Priority to CN201911289054.3A priority Critical patent/CN111061510B/zh
Publication of CN111061510A publication Critical patent/CN111061510A/zh
Application granted granted Critical
Publication of CN111061510B publication Critical patent/CN111061510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)

Abstract

一种可扩展的ASIP结构平台及指令处理方法,该平台具有指令执行逻辑的流水线,指令执行逻辑包括n个簇,其中簇0‑(n–2)为常规簇,用来实现常规指令,每个簇包含2个算数逻辑单元ALU和一个4读2写的分布式寄存器文件RF;簇n–1为扩展簇,用来实现专用扩展指令,包含一个具有6个读2个写端口最多32个通用寄存器的ERF、一个具有6输入和2输出EFU和一个算数逻辑单元ALU;簇之间包括流出控制网络单元ICN和操作数传递网络单元OPN;与每个ALU或EFU耦合的执行管理单元EMU、与每个RF或ERF耦合的寄存器管理单元RMU构成指令执行控制机制的硬件。该方法基于上述平台来完成指令的处理。本发明具有易实现、能够提高专用指令集处理器扩展性等优点。

Description

一种可扩展的ASIP结构平台及指令处理方法
技术领域
本发明主要涉及到处理器技术领域,特指一种可扩展的ASIP结构平台及指令处理方法,其是能够对专用指令集处理器的扩展性进行提升。
背景技术
在单核处理器中,将资源划分到多个簇(Cluster)中可以消除或减小寄存器文件(Register File,RF)访问端口和集中控制的指令流出逻辑对处理器的可扩展性的约束。每个簇通常包括一或多个功能单元(Functional Unit)、一个寄存器文件,簇间通信通过共享存储(寄存器文件/cache等)或交叉开关(Crossbar)完成。程序计数器(PC)和译码逻辑可由多个簇共享也可以分布在每个簇中。
面向应用的指令集处理器(Application Specific Instruction-setProcessor,ASIP)通过增加专用扩展指令可有效提升处理器的性能。由于分簇式单处理器具有良好的资源可扩展性、软件可编程性,适合作为基础平台针对数据计算密集型应用(如果视频处理/无线通信/网络数据处理等)构建ASIP。但由于指令字长(通常为16/32/64位)、指令的操作数(通常不超过3个)的限制,分簇式单处理器中可用的寄存器资源非常有限(通常为16/32/64个),且无法支持具有超过4个操作数的专用扩展指令。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种易实现、能够提高专用指令集处理器扩展性的可扩展的ASIP结构平台及指令处理方法。
为解决上述技术问题,本发明采用以下技术方案:
一种可扩展的ASIP结构平台,具有指令执行逻辑的流水线,所述指令执行逻辑包括n个簇,其中簇0-(n–2)为常规簇,用来实现常规指令,每个簇包含2个算数逻辑单元ALU和一个4读2写的分布式寄存器文件RF;簇n–1为扩展簇,用来实现专用扩展指令,包含一个具有6个读2个写端口最多32个通用寄存器的扩展寄存器文件ERF、一个具有6输入和2输出扩展功能单元EFU和一个算数逻辑单元ALU,所述算数逻辑单元ALU负责为扩展功能单元EFU提供操作数,只执行存储器读/写指令;
所述簇之间包括流出控制网络单元ICN和操作数传递网络单元OPN;
与每个ALU或EFU耦合的执行管理单元EMU、与每个RF或ERF耦合的寄存器管理单元RMU构成指令执行控制机制的硬件。
作为本发明的进一步改进:在所述簇内,簇0-(n–1)的每个簇中均包含:一簇指令缓冲单元CIB、一个或多个执行管理单元EMU、一个寄存器管理单元RMU。所述簇指令缓冲单元CIB用来负责接收来自指令流出逻辑的指令包,可容纳一或多个指令包;所述执行管理单元EMU中包含指令缓冲、输出缓冲、数据相关表DDT、操作数管理逻辑;所述寄存器管理单元RMU中包含寄存器访问表RAT和执行管理单元EMU请求处理逻辑。
作为本发明的进一步改进:在指令执行过程的流出阶段,若指令的某个源操作数由其它簇中已经流出的某个指令包中的指令产生,则通过流出控制网络单元ICN通知该簇更新其寄存器访问表RAT;流出控制网络单元ICN上传递的信息包括:簇编号、寄存器索引、源操作数的生产者在簇指令包中的位置或索引。
在指令执行过程的取数阶段,若指令有寄存器型源操作数未就绪,且操作数位于其它簇的寄存器文件,执行管理单元EMU操作数传递网络OPN发出取数请求;若数据已就绪,操作数传递网络OPN返回EMU请求的数据;若数据未就绪,EMU一直等待直到OPN返回数据;操作数传递网络OPN上传递的信息包括:簇编号、寄存器索引、源操作数的生产者在簇指令包中的位置或索引、OPN返回的操作数数据。
作为本发明的进一步改进:若处理器中有m个簇,m个簇内共有k个已流出但尚未提交的指令;设每个寄存器访问表RF或扩展寄存器文件ERF中包含r个局部寄存器,每个执行管理单元EMU的指令缓冲中有l项,即每个功能单元最多有l条正在执行或尚未执行的指令;同时,设一条指令最多有s个输入操作数和d个输出操作数。
作为本发明的进一步改进:RAT有r项,每项对应于本地寄存器文件中的一个寄存器;每个RAT项中包含k个(0-k-1)读标志域和k个(0-k-1)写标志域;读标志域的顺序和写标志域的顺序表示m个簇内共k个已流出但尚未提交的指令对该寄存器的读、写访问顺序;每个读标志域和写标志域都包括簇编号、簇内指令编号,对应于EMU中的指令缓冲中指令的位置。
作为本发明的进一步改进:DDT有l项,每项对应于EMU的指令缓冲中的一条正在执行或尚未执行的指令;每个DDT项包含s个输入等待位和d个输出等待位,输入/输出等待位为1时表示对应的输入/输出操作数尚未获取/写回;同时每个DDT项包含s个输入相关域和d个输出相关域;输入相关域、输出相关域表示该指令的输入操作数的生产者是某个簇的某个指令,输出操作数的消费者是某个簇的某个指令;每个输入相关域和输出相关域都包括簇编号、簇内指令编号,对应于EMU中的指令缓冲中指令的位置。
作为本发明的进一步改进:所述ASIP结构平台的指令集包括4种类型:
l.alu指OR1200原有的指令,l.extd指CASIP在OR1200增加的专用扩展指令,包含最多6个输入操作数、2个输出操作数;l.pkgh为指令包的包头指令,包含指令包中的指令所需要的公共信息,在程序地址上要求4字节对齐;l.oprd是为操作数大于3的l.extd类指令提供额外的操作数的服务指令,l.oprd在程序地址上紧随其所服务的l.extd指令之后。
作为本发明的进一步改进:所述ASIP结构平台中取指单元的并行度取决于取指逻辑与存储***接口的位宽;指令译码单元的并行度根据指令包允许的最大长度灵活设置;指令流出单元是以指令包为单位进行的,指令流出单元没有固定的流出宽度。
作为本发明的进一步改进:所述ASIP结构平台将单核处理器中的集中控制的一级指令流出方式转换为2级分布式控制的指令流出,将集中的执行控制转换为分布到每个簇中由每个簇中的专门部件单独控制;其中,2级指令流出包括:第一级指令包流出,即一次性将一个指令包流出到一个簇中的指令缓冲中,不检查指令的相关性,第二级指令流出,即每个簇根据簇内的指令执行情况流出各自缓冲的指令包中的指令。
本发明进一步提供一种基于可扩展的ASIP结构平台的指令处理方法,其包括:
步骤S1:取指;取指管理部件从指令cache中一次性取出一个指令包,缓冲在取指管理中的指令包缓冲中;
步骤S2:译码;为指令包译码,即对指令包抽取出包头指令中簇编号CI;指令流出时,根据簇编号CI确定指令包派发到哪个簇执行;
步骤S3:流出;分2个阶段:a)指令包流出;指令包流出控制逻辑根据包头指令中簇编号CI,首先检查对应簇的簇指令缓冲CIB是否有空闲容纳一个完整的指令包;若有,则将取指管理部件的指令包缓冲中的一个指令包抽取出来,存入CIB中;b)指令流出;首先检查簇内计算资源是否可用;若可用,则按顺序将CIB中的指令尚未分配计算资源的指令流出到该计算资源上,更新簇内EMU、RMU中的数据相关表DDT、寄存器访问表RAT;若指令的某个源操作数由其它簇中已经流出的某个指令包中的指令产生,则通过流出控制网络ICN通知该簇更新其寄存器访问表RAT;流出后的指令会被备份到EMU的指令缓冲中;
步骤S4:取数;经流出的指令已分配了计算资源(ALU或EFU);
步骤S5:执行;
步骤S6:写回。
与现有技术相比,本发明的优点在于:
本发明的可扩展的ASIP结构平台及指令处理方法,原理简单、易实现,可在不显著增加处理器的软件和硬件开销的情况下:
1)在单处理器的易于编程的环境下提高处理器的可扩展性。CASIP结构可以灵活扩展到最多32个簇,整个***中最多可以包含1024个通用寄存器。
2)为面向应用的专用扩展指令提供软、硬件方面的支持。CASIP的指令集结构可以在32位固定长指令字中为面向应用的专用扩展指令表示最多6个输入操作数和2个输出操作数。
附图说明
图1是本发明CASIP结构的流水线结构示意图。
图2是本发明在具体应用实例中RAT和DDT的结构及其位分配示意图。
图3是本发明在具体应用实例中CASIP的指令类型及指令编码示意图。
图4是本发明在具体应用实例中一条指令在其执行周期内的状态转换示意图。
图5是本发明在具体应用实例中一条指令的执行流程示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
本发明可扩展的ASIP结构平台CASIP(Clustered Application SpecificInstruction-set Processor),该CASIP结构是基于OR1200构建的分簇式处理器。如图1所示,示出了CASIP结构的结构图。本发明的CASIP具有6级整数流水线,即取指单元、译码单元、流出单元、取数单元、执行单元和写回单元。取指单元的并行度取决于取指逻辑与存储***接口的位宽。指令译码单元的并行度可以根据指令包允许的最大长度灵活设置。由于指令流出单元是以指令包为单位进行的,因此指令流出单元没有固定的流出宽度。本发明的CASIP具有顺序取指、顺序译码、并行流出(簇间)、并行执行和并行写回的特点。
本发明所提出的可扩展的ASIP结构平台CASIP,CASIP包括2个关键机制:
1)改变指令的执行资源分配方式、固定字长(如32位)指令字的编码方式,以支持多操作数(寄存器型)的专用扩展指令;
2)改变指令流出、执行控制机制,将单核处理器中的集中控制的一级指令流出方式转换为2级分布式控制的指令流出,将集中的执行控制转换为分布到每个簇中由每个簇中的专门部件单独控制,以消除或弱化指令流出、执行控制对处理器可扩展性的限制。其中,2级指令流出包括:第一级指令包流出,即一次性将一个指令包流出到一个簇中的指令缓冲中(不检查指令的相关性),第二级指令流出,即每个簇根据簇内的指令执行情况流出各自缓冲的指令包中的指令。
为此,本发明的CASIP可在不显著增加处理器的软件和硬件开销的情况下:
1)在单处理器的易于编程的环境下提高处理器的可扩展性。CASIP结构可以灵活扩展到最多32个簇,整个***中最多可以包含1024个通用寄存器。
2)为面向应用的专用扩展指令提供软、硬件方面的支持。CASIP的指令集结构可以在32位固定长指令字中为面向应用的专用扩展指令表示最多6个输入操作数和2个输出操作数。
在具体应用实例中,CASIP的指令执行逻辑由n个簇组成。其中簇0-n–2为常规簇,实现加/减/乘/移位/等常规指令,每个簇包含2个算数逻辑单元(ALU)和一个4读2写的分布式寄存器文件(Register File,RF);簇n–1为扩展簇,可实现专用扩展指令,包含一个具有6个读2个写端口最多32个通用寄存器的扩展寄存器文件(Extended Register File,ERF)、一个具有6输入和2输出扩展功能单元(Extended Functional Unit,EFU)和一个ALU(负责为EFU提供操作数,只执行存储器读/写指令)。
在具体应用实例中,从簇内资源来讲,簇0-n–1的每个簇中均包含:一簇指令缓冲单元(Cluster Instruction Buffer,CIB)、一个或多个执行管理单元(ExecutionManagement Unit,EMU)、一个寄存器管理单元(Register Management Unit,RMU)。簇指令缓冲单元CIB用来负责接收来自指令流出逻辑的指令包,可容纳一或多个指令包;执行管理单元EMU中包含指令缓冲、输出缓冲、数据相关表(Data Dependency Table,DDT)、操作数管理逻辑;寄存器管理单元RMU中包含寄存器访问表(Register Access Table,RAT)和执行管理单元EMU请求处理逻辑。
在具体应用实例中,从簇间资源来讲,包括:流出控制网络单元(Issuing ControlNetwork,ICN)、操作数传递网络单元(Operand Passing Network,OPN)。
在指令执行过程的流出阶段(参见图5),若指令的某个源操作数(Src0-Src5)由其它簇中已经流出的某个指令包中的指令产生,则通过流出控制网络单元ICN通知该簇更新其寄存器访问表RAT。流出控制网络单元ICN上传递的信息包括:簇编号、寄存器索引、源操作数的生产者在簇指令包中的位置或索引。
在指令执行过程的取数阶段(参见图5),若指令有寄存器型源操作数未就绪(即该指令对应的DDT项中的输入等待位有非0值),且操作数位于其它簇的寄存器文件,执行管理单元EMU操作数传递网络OPN发出取数请求。若数据已就绪,操作数传递网络OPN返回EMU请求的数据;若数据未就绪,EMU一直等待直到OPN返回数据。操作数传递网络OPN上传递的信息包括:簇编号、寄存器索引、源操作数的生产者在簇指令包中的位置或索引、OPN返回的操作数数据。
在具体应用实例中,从指令操作数管理来讲,与每个ALU或EFU耦合的执行管理单元EMU、与每个RF或ERF耦合的寄存器管理单元RMU构成CASIP的指令执行控制机制的硬件支撑。1)EMU中的DDT用以保存派发到该功能单元的指令与其它指令之间的数据相关性。EMU中的操作数管理逻辑根据DDT中保存的信息,为指令缓冲中已流出但尚未执行的指令在指令执行开始时向存储器或寄存器文件发出读请求以获取数据,并在指令执行结束时为输出缓冲中的数据发出寄存器或存储器写请求以写回数据。2)每个RMU中的寄存器访问表RAT为该RF或ERF中的寄存器记录映射到不同功能单元的指令对该寄存器的访问顺序。RMU根据RAT中的信息决定是否响应来自某个EMU的读、写请求。3)对于每个簇,EMU中的DDT和RMU中的RAT在每条指令流出之后和数据写回之后均需要更新。
在具体应用实例中,RAT和DDT的结构如图2所示。设处理器中有m个簇,m个簇内共有k个已流出但尚未提交的指令。设每个RF或ERF中包含r个局部寄存器,每个EMU的指令缓冲中有l项,即每个功能单元最多有l条正在执行或尚未执行的指令。同时,设一条指令最多有s个输入操作数和d个输出操作数。
图2中,RAT有r项,每项对应于本地寄存器文件中的一个寄存器。每个RAT项中包含k个(0-k-1)读标志域和k个(0-k-1)写标志域。读标志域的顺序和写标志域的顺序表示m个簇内共k个已流出但尚未提交的指令对该寄存器的读、写访问顺序。每个读标志域和写标志域都包括簇编号、簇内指令编号(对应于EMU中的指令缓冲中指令的位置)。
图2中,DDT有l项,每项对应于EMU的指令缓冲中的一条正在执行或尚未执行的指令。每个DDT项包含s个输入等待位和d个输出等待位,输入/输出等待位为1时表示对应的输入/输出操作数尚未获取/写回。同时每个DDT项包含s个输入相关域和d个输出相关域。输入相关域、输出相关域表示该指令的输入操作数的生产者是某个簇的某个指令,输出操作数的消费者是某个簇的某个指令。每个输入相关域和输出相关域都包括簇编号、簇内指令编号(对应于EMU中的指令缓冲中指令的位置)。
在具体应用实例中,CASIP的指令集是基于OR1200的指令集。CASIP指令集包括4种类型(参见图3):l.alu泛指OR1200原有的指令,l.extd泛指CASIP在OR1200增加的专用扩展指令,可包含最多6个输入操作数、2个输出操作数;l.pkgh为指令包的包头指令,包含指令包中的指令所需要的公共信息,在程序地址上要求4字节对齐;l.oprd是为操作数大于3的l.extd类指令提供额外的操作数的服务指令,l.oprd在程序地址上紧随其所服务的l.extd指令之后。
指令包是指一次性分配到一个簇中执行的一组指令结合,由一条包头指令l.pkgh,一条或多条其它指令组成。本发明中的指令包满足如下约束:1)一个指令包中,最多允许有3条指令的输入操作数来自其它簇中的寄存器;2)一条指令,最多允许有一个输入操作数来自其它簇中的寄存器;3)指令包的长度(一个指令包中包含的指令数)最大为16。
l.pkgh指令定义其所分配的簇编号(Cluster Index,CI),指令包长度(PackageLength,PL),与包内指令存在数据相关的其它簇指令包中的指令其指令包中的位置或索引(Dependent Instruction Index,DII)。DCI(Dependent Cluster Index)表示来自簇外寄存器的操作数所在的簇索引,DOI(Dependent Operand Index)表示本指令的哪个操作数需要从簇外获得。DOI、DCI、DII包含了从簇外获取操作数时的所有信息。DII可以是Src0-Src5的复制。R为保留位。
在具体应用实例中,指令执行控制机制为:在CASIP处理器中,指令的执行过程经过了6个步骤,即取指、译码、流出、取数、执行和写回。其中,取指、译码、流出状态为指令执行过程中的集中控制过程;取数、执行、写回状态为指令执行过程中的分布式控制过程。为简化起见,图中的状态转换条件中省略了一些默认的条件。
在具体应用实例中,参见图5,本发明进一步提供一种基于可扩展的ASIP结构平台的指令处理方法,在具体应用实例中一条指令的执行流程为:
步骤S1:取指。
图1中的取指管理部件从指令cache中一次性取出一个指令包,缓冲在取指管理中的指令包缓冲中。本发明中,指令包缓冲个数为4(0-3),即最多缓冲4个指令包(包含包头指令l.pkgh),每个指令包缓冲中存储的第一条指令为包头指令l.pkgh。取指的并行度取决于取指管理部件与指令Cache的接口宽度(本发明中为128位)。本发明中,取指管理部件与指令Cache的接口宽度为128位,每个时钟周期最多可以取出4条32位指令。
步骤S2:译码。
该步骤为指令包译码,即针对图1中的取指管理部件中的指令包缓冲0-3中的指令包,抽取出包头指令l.pkgh中簇编号CI。指令流出时,根据簇编号CI确定指令包派发到哪个簇执行。
步骤S3:流出。
指令流出过程分2个阶段:a)指令包流出。指令包流出控制逻辑根据包头指令l.pkgh中簇编号CI,首先检查对应簇的簇指令缓冲CIB是否有空闲容纳一个完整的指令包。若有,则将取指管理部件的指令包缓冲中的一个指令包抽取出来,存入CIB中。b)指令流出。图1中的指令流出逻辑首先检查簇内计算资源(ALU或EFU)是否可用。若可用,则按顺序将CIB中的指令尚未分配计算资源的指令流出(或派发)到该计算资源上,更新簇内EMU、RMU中的数据相关表DDT、寄存器访问表RAT。若指令的某个源操作数(Src0-Src5)由其它簇中已经流出的某个指令包中的指令产生,则通过流出控制网络ICN通知该簇更新其寄存器访问表RAT。流出后的指令会被备份到EMU的指令缓冲中。
步骤S4:取数。
经流出的指令已分配了计算资源(ALU或EFU)。该计算资源对应的执行管理单元EMU负责获取指令的源操作数。若指令有源操作数未就绪(即该指令对应的DDT项中的输入等待位有非0值),a)操作数为寄存器型。EMU向RMU(若数据位于本簇的寄存器文件)或操作数传递网络OPN(若数据位于其它簇的寄存器文件)发出取数请求。若数据已就绪,RMU或OPN返回EMU请求的数据;若数据未就绪,EMU一直等待直到RMU或OPN返回数据。EMU可向RMU或OPN产生多个请求以同时获取多个操作数。b)操作数为存储器型。取数过程与传统RISC处理器的写回过程相同。
步骤S5:执行。
CASIP的指令执行与传统RISC处理器的指令执行类似。当指令的所有源操作数就绪时EMU通知计算资源(ALU或EFU)启动指令执行。对于算数逻辑指令,执行过程对源操作数进行算数逻辑操作;对于分支指令,执行过程计算分支的目标地址并保存在分支目标寄存器中;对于存储指令,执行过程计算访问存储器的有效地址,并向存储器发出存储器读写请求。指令的执行时间视具体指令的类型而定。分支指令和除乘法指令外的算数逻辑指令的执行时间均为1个时钟周期。专用扩展指令的执行时间为1-3个周期不等。存储器写指令的执行时间也是1个时钟周期;存储器读指令的执行时间不定。指令执行周期结束时,执行结果写入EMU中的输出缓冲。
步骤S6:写回。
若输出缓冲中存在未写回的执行结果,EMU首先检查DDT,以确定写回操作被允许,即在该写回操作之前针对目的操作数Dest0/Dest1所进行的读写操作均已完成),然后向存储器或RF/ERF产生写请求。RMU根据RAT中保存的对寄存器访问顺序决定是否响应来自EMU的写请求。对于存储器写指令,写回过程与传统RISC处理器的写回过程相同。写回阶段有一个重要任务,即清除已写回的指令在流水线中的记录,包括:a)清除指令在EMU中的记录;b)清除指令在簇指令缓冲CIB的记录;c)清除指令在RMU中的相关信息。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (9)

1.一种可扩展的ASIP结构平台,具有指令执行逻辑的流水线,其特征在于,
所述指令执行逻辑包括n个簇,其中簇0-(n–2)为常规簇,用来实现常规指令,每个簇包含2个算数逻辑单元ALU和一个4读2写的分布式寄存器文件RF;簇n–1为扩展簇,用来实现专用扩展指令,包含一个具有6个读2个写端口最多32个通用寄存器的扩展寄存器文件ERF、一个具有6输入和2输出扩展功能单元EFU和一个算数逻辑单元ALU,所述算数逻辑单元ALU负责为扩展功能单元EFU提供操作数,只执行存储器读/写指令;
所述簇之间包括流出控制网络单元ICN和操作数传递网络单元OPN;
与每个ALU或EFU耦合的执行管理单元EMU、与每个RF或ERF耦合的寄存器管理单元RMU构成指令执行控制机制的硬件;
在指令执行过程的流出阶段,若指令的某个源操作数由其它簇中已经流出的某个指令包中的指令产生,则通过流出控制网络单元ICN通知该簇更新其寄存器访问表RAT;流出控制网络单元ICN上传递的信息包括:簇编号、寄存器索引、源操作数的生产者在簇指令包中的位置或索引;
RAT有r项,每项对应于本地寄存器文件中的一个寄存器;每个RAT项中包含k个(0-k-1)读标志域和k个(0-k-1)写标志域;读标志域的顺序和写标志域的顺序表示m个簇内共k个已流出但尚未提交的指令对该寄存器的读、写访问顺序;每个读标志域和写标志域都包括簇编号、簇内指令编号,对应于EMU中的指令缓冲中指令的位置。
2.根据权利要求1所述的可扩展的ASIP结构平台,其特征在于,在所述簇内,簇0-(n–1)的每个簇中均包含:一簇指令缓冲单元CIB、一个或多个执行管理单元EMU、一个寄存器管理单元RMU;所述簇指令缓冲单元CIB用来负责接收来自指令流出逻辑的指令包,可容纳一或多个指令包;所述执行管理单元EMU中包含指令缓冲、输出缓冲、数据相关表DDT、操作数管理逻辑;所述寄存器管理单元RMU中包含寄存器访问表RAT和执行管理单元EMU请求处理逻辑。
3.根据权利要求1所述的可扩展的ASIP结构平台,其特征在于,
在指令执行过程的取数阶段,若指令有寄存器型源操作数未就绪,且操作数位于其它簇的寄存器文件,执行管理单元EMU操作数传递网络OPN发出取数请求;若数据已就绪,操作数传递网络OPN返回EMU请求的数据;若数据未就绪,EMU一直等待直到OPN返回数据;操作数传递网络OPN上传递的信息包括:簇编号、寄存器索引、源操作数的生产者在簇指令包中的位置或索引、OPN返回的操作数数据。
4.根据权利要求3所述的可扩展的ASIP结构平台,其特征在于,若处理器中有m个簇,m个簇内共有k个已流出但尚未提交的指令;设每个寄存器访问表RF或扩展寄存器文件ERF中包含r个局部寄存器,每个执行管理单元EMU的指令缓冲中有l项,即每个功能单元最多有l条正在执行或尚未执行的指令;同时,设一条指令最多有s个输入操作数和d个输出操作数。
5.根据权利要求1所述的可扩展的ASIP结构平台,其特征在于,DDT有l项,每项对应于EMU的指令缓冲中的一条正在执行或尚未执行的指令;每个DDT项包含s个输入等待位和d个输出等待位,输入/输出等待位为1时表示对应的输入/输出操作数尚未获取/写回;同时每个DDT项包含s个输入相关域和d个输出相关域;输入相关域、输出相关域表示该指令的输入操作数的生产者是某个簇的某个指令,输出操作数的消费者是某个簇的某个指令;每个输入相关域和输出相关域都包括簇编号、簇内指令编号,对应于EMU中的指令缓冲中指令的位置。
6.根据权利要求1所述的可扩展的ASIP结构平台,其特征在于,所述ASIP结构平台的指令集包括4种类型:
l.alu指OR1200原有的指令,l.extd指CASIP在OR1200增加的专用扩展指令,包含最多6个输入操作数、2个输出操作数;l.pkgh为指令包的包头指令,包含指令包中的指令所需要的公共信息,在程序地址上要求4字节对齐;l.oprd是为操作数大于3的l.extd类指令提供额外的操作数的服务指令,l.oprd在程序地址上紧随其所服务的l.extd指令之后。
7.根据权利要求1-6中任意一项所述的可扩展的ASIP结构平台,其特征在于,所述ASIP结构平台中取指单元的并行度取决于取指逻辑与存储***接口的位宽;指令译码单元的并行度根据指令包允许的最大长度灵活设置;指令流出单元是以指令包为单位进行的,指令流出单元没有固定的流出宽度。
8.根据权利要求1-6中任意一项所述的可扩展的ASIP结构平台,其特征在于,所述ASIP结构平台将单核处理器中的集中控制的一级指令流出方式转换为2级分布式控制的指令流出,将集中的执行控制转换为分布到每个簇中由每个簇中的专门部件单独控制;其中,2级指令流出包括:第一级指令包流出,即一次性将一个指令包流出到一个簇中的指令缓冲中,不检查指令的相关性,第二级指令流出,即每个簇根据簇内的指令执行情况流出各自缓冲的指令包中的指令。
9.一种基于上述权利要求1-8中任意一项可扩展的ASIP结构平台的指令处理方法,其特征在于,包括:
步骤S1:取指;取指管理部件从指令cache中一次性取出一个指令包,缓冲在取指管理中的指令包缓冲中;
步骤S2:译码;为指令包译码,即对指令包抽取出包头指令中簇编号CI;指令流出时,根据簇编号CI确定指令包派发到哪个簇执行;
步骤S3:流出;分2个阶段:a)指令包流出;指令包流出控制逻辑根据包头指令中簇编号CI,首先检查对应簇的簇指令缓冲CIB是否有空闲容纳一个完整的指令包;若有,则将取指管理部件的指令包缓冲中的一个指令包抽取出来,存入CIB中;b)指令流出;首先检查簇内计算资源是否可用;若可用,则按顺序将CIB中的指令尚未分配计算资源的指令流出到该计算资源上,更新簇内EMU、RMU中的数据相关表DDT、寄存器访问表RAT;若指令的某个源操作数由其它簇中已经流出的某个指令包中的指令产生,则通过流出控制网络ICN通知该簇更新其寄存器访问表RAT;流出后的指令会被备份到EMU的指令缓冲中;
步骤S4:取数;经流出的指令已分配了计算资源ALU或EFU;
步骤S5:执行;
步骤S6:写回。
CN201911289054.3A 2019-12-12 2019-12-12 一种可扩展的asip结构平台及指令处理方法 Active CN111061510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911289054.3A CN111061510B (zh) 2019-12-12 2019-12-12 一种可扩展的asip结构平台及指令处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911289054.3A CN111061510B (zh) 2019-12-12 2019-12-12 一种可扩展的asip结构平台及指令处理方法

Publications (2)

Publication Number Publication Date
CN111061510A CN111061510A (zh) 2020-04-24
CN111061510B true CN111061510B (zh) 2021-01-05

Family

ID=70301550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911289054.3A Active CN111061510B (zh) 2019-12-12 2019-12-12 一种可扩展的asip结构平台及指令处理方法

Country Status (1)

Country Link
CN (1) CN111061510B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477520A (zh) * 2002-08-21 2004-02-25 先进数字芯片株式会社 具有扩展指令的中央处理器
WO2004016768A2 (en) * 2002-08-19 2004-02-26 Dnaprint Genomics, Inc. Compositions and methods for inferring ancestry
EP1771792A4 (en) * 2004-06-08 2008-12-17 Univ Rochester DYNAMIC MANAGEMENT OF COMPROMISE BETWEEN COMMUNICATION AND PARALLELISM IN PROCESSORS WITH SECTOR GROUPS
WO2012068504A3 (en) * 2010-11-18 2012-10-04 Texas Instruments Incorporated Method and apparatus for moving data
CN105009099A (zh) * 2013-11-07 2015-10-28 株式会社日立制作所 计算机***及数据控制方法
CN109062684A (zh) * 2018-07-04 2018-12-21 南京南大光电工程研究院有限公司 一种多核处理器的硬件实时动态自适应动态负载平衡方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442680B1 (en) * 1999-01-29 2002-08-27 International Business Machines Corporation Method and system for compressing reduced instruction set computer (RISC) executable code
CN1732436A (zh) * 2002-12-30 2006-02-08 皇家飞利浦电子股份有限公司 在集群式指令级并行性处理器中访问总线的方法
US8385419B2 (en) * 2006-04-26 2013-02-26 Altera Corporation Methods and apparatus for motion search refinement in a SIMD array processor
US8682453B2 (en) * 2010-06-04 2014-03-25 The Mathworks, Inc. Interactive system for controlling multiple input multiple output control (MIMO) structures
US9507599B2 (en) * 2013-07-22 2016-11-29 Globalfoundries Inc. Instruction set architecture with extensible register addressing
US9785565B2 (en) * 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
CN110119375B (zh) * 2019-05-16 2020-08-25 湖南毂梁微电子有限公司 一种将多个标量核链接为单核向量处理阵列的控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004016768A2 (en) * 2002-08-19 2004-02-26 Dnaprint Genomics, Inc. Compositions and methods for inferring ancestry
CN1477520A (zh) * 2002-08-21 2004-02-25 先进数字芯片株式会社 具有扩展指令的中央处理器
EP1771792A4 (en) * 2004-06-08 2008-12-17 Univ Rochester DYNAMIC MANAGEMENT OF COMPROMISE BETWEEN COMMUNICATION AND PARALLELISM IN PROCESSORS WITH SECTOR GROUPS
WO2012068504A3 (en) * 2010-11-18 2012-10-04 Texas Instruments Incorporated Method and apparatus for moving data
CN105009099A (zh) * 2013-11-07 2015-10-28 株式会社日立制作所 计算机***及数据控制方法
CN109062684A (zh) * 2018-07-04 2018-12-21 南京南大光电工程研究院有限公司 一种多核处理器的硬件实时动态自适应动态负载平衡方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
魂芯分簇VLIW DSP上指令调度的优化;王玉林等;《微型机与应用》;20170630;第36卷(第11期);全文 *

Also Published As

Publication number Publication date
CN111061510A (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
US11204769B2 (en) Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
US9934072B2 (en) Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
US9990200B2 (en) Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
KR100431168B1 (ko) 단일 클럭 사이클 내에 불연속 명령을 페치하기 위한 방법 및 시스템
WO2005093562A1 (ja) データ処理装置、データ処理プログラム、およびデータ処理プログラムを記録した記録媒体
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
CN111061510B (zh) 一种可扩展的asip结构平台及指令处理方法
US11106466B2 (en) Decoupling of conditional branches
US11507372B2 (en) Processing of instructions fetched from memory
KR102170966B1 (ko) 고성능 비순차 실행 코어의 리오더 버퍼 관리 장치 및 방법
CN116339489A (zh) 处理器中微操作的扼制融合的***、装置和方法
Kang et al. On-chip multiprocessor design
Koranne et al. The Synergistic Processing Element

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant