CN110083569A - 一种适用于risc-v架构的协处理器接口 - Google Patents
一种适用于risc-v架构的协处理器接口 Download PDFInfo
- Publication number
- CN110083569A CN110083569A CN201910363295.1A CN201910363295A CN110083569A CN 110083569 A CN110083569 A CN 110083569A CN 201910363295 A CN201910363295 A CN 201910363295A CN 110083569 A CN110083569 A CN 110083569A
- Authority
- CN
- China
- Prior art keywords
- eai
- signal
- instruction
- coprocessor
- memory
- 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.)
- Withdrawn
Links
- 230000000977 initiatory effect Effects 0.000 claims abstract description 4
- 239000003550 marker Substances 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 4
- 235000013399 edible fruits Nutrition 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 206010033307 Overweight Diseases 0.000 description 2
- 235000020825 overweight Nutrition 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 210000003934 vacuole Anatomy 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开一种适用于RISC‑V架构的协处理器接口,包括:请求通道、反馈通道、存储器请求通道和存储器反馈通道,其中:所述请求通道,主要用于供主处理器在执行阶段将指令信息和源操作数派发给协处理器;所述反馈通道,主要用于供协处理器反馈主处理器告知其已经完成了该指令,并将结果写回主处理器;所述存储器请求通道,主要用于供协处理器向主处理器发起存储器读写请求;所述存储器反馈通道,主要用于供主处理器向协处理器返回存储器读写结果。本发明将通过协处理器接口让协处理器与处理器内核直接进行交互,达到协处理器与处理器内核耦合。
Description
技术领域
本发明涉及低功耗内核协处理器接口技术,尤其涉及一种适用于RISC-V架构的协处理器接口。
背景技术
“异构计算”的概念我们可能并不陌生,异构计算的精髓并不在于异构本身,其核心的理念在于使用专业的硬件做专业的事,典型的例子是CPU+GPU的组合,CPU侧重于通用的控制和计算,而GPU侧重于专用的图像处理。研究表明多核异构计算由于利用了专业的特性,可以获得比普通同架构更高的性能,而消耗更少的功耗。异构计算的一种具体表现形式是DSA(Domain Specific Architecture,专用领域架构)。著名的计算机体系结构领域泰斗John Hennessy教授在2017年的演讲一次中提到,目前处理器发展的新希望在于专用领域处理器架构(DSA)。作为异构计算的一种具体表现形式,DSA的核心思想同样是使用专用的硬件做专用的事情,但是与ASIC硬件化的电路不同,DSA是满足一个Domain内的应用,而非一个固定的应用,因此它能够满足灵活性与专用性的折衷。同时它需要更多专用领域的专业知识,从而更好地为Domain Specific设计出更合适的架构。作为异构计算的一种具体表现形式,DSA有时也被解释为Domain Specific Accelerator,即对主处理器适当地扩展出面向某些特定领域的协处理器加速器,这种“Domain Specific Accelerator”是“DomainSpecific Architecture”的一种具体体现,能极大地提高能效比。RISC-V架构的显著特性之一便是开放的可扩展性,从而能够非常容易在RISC-V的通用架构基础上实现“DomainSpecific Accelerator”,这也是RISC-V架构相比ARM和x86等主流商业架构的最大优点。RISC-V架构的显著特性之一便是开放的可扩展性,而RISC-V的可扩展性体现在两个方面,一个是预留的指令编码空间,另一个是预定义的Custom指令。为了便于用户对RISC-V进行扩展,RISC-V架构甚至在32位的指令中预定义了4组Custom指令类型,每种Custom均有自己的Opcode,基于RISC-V架构的这个特点,RISC-V处理器的设计者可以进行协处理器的扩展。
协处理器扩展一般的方法是按照特定协议设计,连接到处理器的外设总线上,然后通过总线的读写控制加速运算。而由于总线接入了各种设备,其工作频率较低,因此协处理器与内核的数据传输性能也会变低。因此需要一个与内核直接进行交互的桥梁将扩展的协处理器与内核完美耦合。
发明内容
为了解决上述技术问题,本发明提出一种适用于RISC-V架构的协处理器接口。将该适用于RISC-V架构的协处理器接口命名为EAI接口(Extension AcceleratorInterface)。由于EAI接口是基于Custom指令进行协处理器扩展的,因此本发明将该Custom指令称为EAI指令。
为了达到上述目的,本发明的技术方案如下:
一种适用于RISC-V架构的协处理器接口,包括:请求通道、反馈通道、存储器请求通道和存储器反馈通道,其中:
所述请求通道,用于供主处理器在执行阶段将指令信息和源操作数派发给协处理器;
所述反馈通道,用于供协处理器反馈主处理器告知其已经完成了该指令,并将结果写回主处理器;
所述存储器请求通道,用于供协处理器向主处理器发起存储器读写请求;
所述存储器反馈通道,用于供主处理器向协处理器返回存储器读写结果。
优选地,所述请求通道,包括接口信号有eai_req_valid信号、eai_req_ready信号、eai_req_inst信号、eai_req_rs1信号和eai_req_rs2信号,其中:
所述eai_req_valid信号(协存储器EAI接口请求指令有效信号),用于表示主处理器向EAI接口发送指令请求信号;
所述eai_req_ready信号(协存储器EAI接口请求指令接收信号),用于表示EAI接口向主处理器返回指令接收信号;
所述eai_req_inst信号(协存储器EAI接口请求指令编码信号),用于表示主处理器所发送的指令的完整编码;
所述eai_req_rs1信号(协存储器EAI接口请求源操作数1信号),用于表示主处理器输出到EAI接口的源操作数1的低32bit值;
所述eai_req_rs2信号(协存储器EAI接口请求源操作数2信号),用于表示主处理器输出到EAI接口的源操作数2的低32bit值。
优选地,所述反馈通道,包括接口信号有eai_1cyc_type信号、eai_req_instr信号、eai_1cyc_rdat信号、eai_rsp_valid信号、eai_rsp_rdat信号和eai_rsp_ready信号,其中:
所述eai_1cyc_type信号(协存储器EAI接口单周期指令标志信号),用于表示单周期指令指示标志,表示当前收到的eai_req_inst指令经过EAI接口译码发现它是一个单周期指令,由EAI接口反馈到主处理器;
所述eai_1cyc_rdat信号(协存储器EAI接口返回单周期读数据信号),用于表示EAI接口返回的单周期指令的执行结果的低32bit;
所述eai_rsp_valid信号(协存储器EAI接口多周期返回有效标志信号),用于表示多周期指令返回数据有效标志信号,由EAI接口反馈到主处理器;
所述eai_rsp_rdat信号(协存储器EAI接口多周期返回数据信号),用于表示EAI接口返回的多周期指令的执行结果的低32bit;
所述eai_rsp_ready信号(协存储器EAI接口返回接收信号),用于表示EAI接口向主处理器发送访问反馈接收信号。
优选地,所述存储器请求通道,包括接口信号有eai_icb_cmd_valid信号、eai_icb_cmd_ready信号、eai_icb_cmd_addr信号、eai_icb_cmd_read信号、eai_icb_cmd_wdata信号和eai_icb_cmd_size信号,其中:
所述eai_icb_cmd_valid信号(协存储器EAI接口请求有效标志信号),用于表示EAI接口向主处理器发送的存储器访问请求信号;
所述eai_icb_cmd_ready信号(协存储器EAI接口接收信号),用于表示主处理器向EAI接口发送的存储器访问接收信号;
所述eai_icb_cmd_addr信号(协存储器EAI接口地址信号),用于表示EAI接口向主处理器发送的存储器访问地址;
所述eai_icb_cmd_read信号(协存储器EAI接口请求读写信号),用于表示存储器访问操作(读或写);
所述eai_icb_cmd_wdata信号(协存储器EAI接口写数据信号),用于表示EAI接口写数据到存储器里;
所述eai_icb_cmd_size信号(EAI存储器访问数据字节大小控制信号),用于表示访问存储器数据的字节大小。
优选地,所述存储器反馈通道,包括接口信号有eai_icb_rsp_valid信号、eai_icb_rsp_ready信号、eai_icb_rsp_rdata信号和eai_icb_rsp_err信号,其中:
所述eai_icb_rsp_valid信号(协存储器EAI接口返回数据有效标志信号),用于表示主处理器向EAI接口发送存储器访问反馈请求信号;
所述eai_icb_rsp_ready信号(协存储器EAI接口返回数据接收信号),用于表示EAI接口向主处理器发送存储器访问反馈接收信号;
所述eai_icb_rsp_rdata信号(协存储器EAI接口返回读数据信号),用于表示存储器读操作返回的数据(即读到的数据);
所述eai_icb_rsp_err信号(协存储器EAI接口返回错误标志信号),用于表示存储器访问反馈的错误标志。
优选地,所述主处理器为协处理器预留的专用访问通道基于ICB总线标准。
优选地,所述ICB总线采取的总线握手方式为同步总线协议。
优选地,所述协处理器接口基于custom指令进行协处理器扩展。
优选地,所述custom指令为32位,包括opcode编码段、rd编码段、xs2编码段、xs1编码段、xd编码段、rs1编码段、rs2编码段和funct7编码段八个指令编码段,其中:
所述opcode编码段,为指令的第0位至第6位区间,使用编码custom-0、custom-1、custom-2和custom-3指令组,所述编码custom-0、custom-1、custom-2和custom-3指令组分别为0001011、0101000、1011011和1111011;
所述rd编码段,为指令的第7位至第11位区间,为目的寄存器的索引;
所述xs2编码段,为指令的第12位,用于控制是否需要读源寄存器rs2,如果xs2位的值为1,则表示该指令需要读取由rs2比特位索引的通用寄存器作为源操作数2;如果xs2位的值为0,则表示该指令不需要源操作数2;
所述xs1编码段,为指令的第13位,用于控制是否需要读源寄存器rs1,如果xs1位的值为1,则表示该指令需要读取由rs1比特位索引的通用寄存器作为源。操作数1;如果xs1位的值为0,则表示该指令不需要源操作数1;
所述xd编码段,为指令的第14位,用于控制是否需要写目标寄存器rd,如果xd位的值为1,则表示该指令需要写回结果至由rd比特位指示的目标寄存器;如果xd位的值为0,则表示该指令无需写回结果;
所述rs1编码段,为指令的第15位至第19位区间,为源操作数1的索引;
所述rs2编码段,为指令的第20位至第24位区间,为源操作数2的索引;
所述funct7编码段,为指令的第25位至第32位区间,作为额外的编码空间,用于编码更多的指令。
基于上述技术方案,本发明的有益效果是:
(1)本发明EAI接口定义十分简洁便于硬件实现和用户使用。
(2)本发明EAI接口提供了一个与处理器完美耦合的协处理器扩展方式,利用该发明接口不需要修改主处理器的逻辑便可以很方便的扩展指令。
附图说明
图1为本发明EAI指令执行流程图;
图2为本发明EAI指令执行单周期返回结果的时序图;
图3为本发明EAI指令执行多周期返回结果的时序图;
图4为本发明EAI指令执行连续并且返回结果周期数不超过滞外指令个数的访问时序图;
图5为本发明EAI指令执行连续并且返回结果周期数超过滞外指令个数的访问时序图;
图6为本发明EAI指令是一条需要访问存储器的指令的单周期返回结果的时序图;
图7为本发明EAI指令是一条需要访问存储器的指令的多周期返回结果的时序图;
图8为本发明EAI指令是一条需要访问存储器的指令的多周期返回结果但是存储器发生的错误的时序图;
图9为本发明EAI指令是个非法指令,其通过反馈通道返回错误标志的时序图;
图10为本发明EAI存储器接口中,LSU接口为EAI接口预留专用访问通道系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。本发明是基于RISC-V架构的预定义的Custom指令的协处理器接口的设计。将该适用于RISC-V架构的协处理器接口命名为EAI接口(Extension Accelerator Interface)。由于EAI接口是基于Custom指令进行协处理器扩展的,因此本发明将该Custom指令称为EAI指令。
实施例一
如表1所示一种32位的EAI指令编码格式,其中包括opcode、rd、xs2、xs1、xd、rs1、rs2、funct7八个指令编码段。
表1.EAI接口指令编码格式
31 25 | 24 20 | 19 15 | 14 | 13 | 12 | 11 7 | 6 0 |
funct7 | rs2 | rs1 | xd | xs1 | xs2 | rd | opcode |
所述opcode编码段,指令的第0位至第6位区间,其根据表2中的编码规则使用编码custom-0、custom-1、custom-2和custom-3指令组。
表2.EAI接口设计所提到的RISC-V架构公开的作码映射和指令集列表
RISC-Vbaseo opcode map,inst[1:0]=11
所述rd编码段,指令的第7位至第11位区间,为目的寄存器的索引。
所述xs2编码段,指令的第12位,用于控制是否需要读源寄存器rs2,如果xs2位的值为1,则表示该指令需要读取由rs2比特位索引的通用寄存器作为源操作数2;如果xs2位的值为0,则表示该指令不需要源操作数2。
所述xs1编码段,指令的第13位,用于控制是否需要读源寄存器rs1,如果xs1位的值为1,则表示该指令需要读取由rs1比特位索引的通用寄存器作为源。操作数1;如果xs1位的值为0,则表示该指令不需要源操作数1。
所述xd编码段,指令的第14位,用于控制是否需要写目标寄存器rd,如果xd位的值为1,则表示该指令需要写回结果至由rd比特位指示的目标寄存器;如果xd位的值为0,则表示该指令无需写回结果。
所述rs1编码段,指令的第15位至第19位区间,为源操作数1的索引。
所述rs2编码段,指令的第20位至第24位区间,为源操作数2的索引。
所述funct7编码段,指令的第25位至第32位区间,可作为额外的编码空间,用于编码更多的指令,因此一种Custom指令组可以使用funct7区间编码出128条指令,则4组Custom指令组共可以编码出512条两读一写(读取两个源寄存器,写回一个目标寄存器)的协处理器指令。如果有的协处理器指令仅读取一个源寄存器,或者无需写回目标寄存器,则可以使用这些无用的比特位(譬如rd比特位)来编码出更多的协处理器指令。
基于上述指令编码,本发明提出了一种高效快速的接口(EAI),包括请求通道、反馈通道、存储器请求通道和存储器反馈通道,其中:
进一步,所述请求通道:主要用于供主处理器在执行阶段将指令信息和源操作数派发给协处理器,其中包括接口信号有eai_req_valid信号、eai_req_ready信号、eai_req_inst信号、eai_req_rs1信号和eai_req_rs2信号,其中:
所述eai_req_valid信号(协存储器EAI接口请求指令有效信),用于表示主处理器向EAI接口发送指令请求信号;
所述eai_req_ready信号(协存储器EAI接口请求指令接收信号),用于表示EAI接口向主处理器返回指令接收信号;
所述eai_req_inst信号(协存储器EAI接口请求指令编码信号),用于表示主处理器所发送的指令的完整编码;
所述eai_req_rs1信号(协存储器EAI接口请求源操作数1信号),用于表示主处理器输出到EAI接口的源操作数1的低32bit值;
所述eai_req_rs2信号(协存储器EAI接口请求源操作数2信号),用于表示主处理器输出到EAI接口的源操作数2的低32bit值。
进一步,所述反馈通道:主要用于供协处理器反馈主处理器告知其已经完成了该指令,并将结果写回主处理器,其中包括接口信号有eai_1cyc_type信号、eai_req_instr信号、eai_1cyc_rdat信号、eai_rsp_valid信号、eai_rsp_rdat信号和eai_rsp_ready信号,其中:
所述eai_1cyc_type信号(协存储器EAI接口单周期指令标志信号),用于表示单周期指令指示标志,表示当前收到的eai_req_inst指令经过EAI接口译码发现它是一个单周期指令,由EAI接口反馈到主处理器;
所述eai_1cyc_rdat信号(协存储器EAI接口返回单周期读数据信号),表示表示EAI接口返回的单周期指令的执行结果的低32bit值;
所述eai_rsp_valid信号(协存储器EAI接口多周期返回有效标志信号),用于表示多周期指令返回数据有效标志信号,由EAI接口反馈到主处理器;
所述eai_rsp_rdat信号(协存储器EAI接口多周期返回数据信号),用于表示EAI接口返回的多周期指令的执行结果的低32bit值;
所述eai_rsp_ready信号(协存储器EAI接口返回接收信号),用于表示EAI接口向主处理器发送访问反馈接收信号。
进一步,所述存储器请求通道:主要用于供协处理器向主处理器发起存储器读写请求,其中包括接口信号有eai_icb_cmd_valid信号、eai_icb_cmd_ready信号、eai_icb_cmd_addr信号、eai_icb_cmd_read信号、eai_icb_cmd_wdata信号和eai_icb_cmd_size信号,其中:
所述eai_icb_cmd_valid信号(协存储器EAI接口请求有效标志信号),用于表示EAI接口向主处理器发送的存储器访问请求信号;
所述eai_icb_cmd_ready信号(协存储器EAI接口接收信号),用于表示主处理器向EAI接口发送的存储器访问接收信号;
所述eai_icb_cmd_addr信号(协存储器EAI接口地址信号),用于表示EAI接口向主处理器发送的存储器访问地址;
所述eai_icb_cmd_read信号(协存储器EAI接口请求读写信号),用于表示存储器访问操作(读或写);
所述eai_icb_cmd_wdata信号(协存储器EAI接口写数据信号),用于表示EAI接口写数据到存储器里;
所述eai_icb_cmd_size信号(EAI存储器访问数据字节大小控制信号),用于表示访问存储器数据的字节大小。
进一步,所述存储器反馈通道:主要用于供主处理器向协处理器返回存储器读写结果,其中包括接口信号有eai_icb_rsp_valid信号、eai_icb_rsp_ready信号、eai_icb_rsp_rdata信号和eai_icb_rsp_err信号,其中:
所述eai_icb_rsp_valid信号(协存储器EAI接口返回数据有效标志信号),用于表示主处理器向EAI接口发送存储器访问反馈请求信号;
所述eai_icb_rsp_ready信号(协存储器EAI接口返回数据接收信号),用于表示EAI接口向主处理器发送存储器访问反馈接收信号;
所述eai_icb_rsp_rdata信号(协存储器EAI接口返回读数据信号),用于表示存储器读操作返回的数据(即读到的数据);
所述eai_icb_rsp_err信号(协存储器EAI接口返回错误标志信号),用于表示存储器访问反馈的错误标志。
上述EAI接口设计信号列表和说明如表3所示:
表3.本发明EAI接口设计信号列表和说明
下面进一步的结合上述接口信号和指令描述来说明一条EAI指令执行的过程,EAI指令执行的大致流程图如图1所示。下面分为下面几点来说明。
(1)主处理器的译码单元在执行阶段对指令的Opcode进行译码,判断其是否属于任意一种custom指令组。
(2)如果主处理器译码判断该指令属于custom指令,则继续依据指令编码的xs1和xs2位判断是否需要读取源寄存器。如果需要读取,则在执行阶段读取通用寄存器组读出源操作数。
(3)主处理器会维护数据依赖性的正确性,譬如该指令需要读取源寄存器与之前正在执行的某条指令存在着先写后读的依赖性,则处理器流水线会暂停直至该依赖性解除。另外,主处理器会依据指令编码的xd位判断该custom指令是否需要写回结果至通用寄存器组,如果要写回,则会将目标寄存器的索引信息存储在主处理器的流水线控制模块中,直到写回完成,以便供后续指令进行数据依赖性的判断。
(4)经过上述步骤之后,主处理器在执行阶段通过EAI接口的请求通道派发给外部的协处理器,派发的信息包括指令的编码信息、两个源操作数的值。
(5)协处理器通过请求通道接受指令之后,需要对指令进一步译码。并进行实际的执行操作。协处理器可以单拍便返回结果,也可以多拍之后再返回结果。对于多拍返回结果的指令其行为可以是阻塞式的也可以是流水线式的。由于协处理器和主处理器的请求通道采取的是valid-ready方式的同步握手接口,只要协处理器能够接受指令,就可以将ready信号拉高。因此只要协处理器能够先后连续接受多条指令,则主处理器就可以先后连续发送多条指令至协处理器。
(6)协处理器执行完成之后,通过EAI接口的反馈通道将结果反馈给主处理器。如果协处理器接受并执行了多条指令,则需要保证其在反馈通道返回结果的顺序必须与在请求通道接受指令的顺序一致,即按序写回。如果是需要写回结果的指令,则反馈通道还需要包含返回结果的值。
(7)主处理器在收到反馈通道的反馈结果之后,则将此次指令从流水线中退役并将结果写回通用寄存器。Custom指令从被发送到协处理器到协处理器反馈结果并退役之间的这段时间,我们称之为滞外指令。这个滞外指令的数目是可以配置的,本发明以主处理器仅仅支持4条滞外指令为例来说明。
EAI接口时序
(1)主处理器向协处理器通过EAI接口的请求通道派发指令,协处理器在同一个周期返回结果,如图2所示。
(2)主处理器向协处理器通过EAI接口的请求通道派发指令,协处理器需要多个周期才能返回结果,且协处理器是阻塞式的,因此其不能接受新的指令直至其通过EAI接口的反馈通道返回计算结果且被主处理器接收,如图3所示。
(3)主处理器向协处理器通过EAI接口的请求通道派发指令,协处理器需要4个周期才能返回结果。但是协处理器式非阻塞式的,因此能连续接受新的指令,直到其通过EAI接口的反馈通道返回计算结果且被主处理器接收,整个过程无空泡,如图4所示。
(4)现在以主处理器只能支持4条滞外指令为例,主处理器向协处理器通过EAI接口的请求通道派发指令,协处理器需要8个周期才能返回结果,但是协处理器是非阻塞式的,因此能连续接收新的指令。但是主处理器最多只能发送4条滞外指令,在EAI接口的反馈通道返回计算结果且被主处理器接收之前会出现4个空泡周期,如图5所示。
(5)主处理器向协处理器通过EAI接口的请求通道派发指令,协处理器译码出该指令需要访问存储器,则将存储器独占信号拉高,协处理器通过存储器请求通道向主处理器LSU接口发起读写请求,主处理器通过存储器反馈通道在下一个周期之后返回结果,协处理器继而将存储器独占信号拉低,如图6所示。
(6)主处理器向协处理器通过EAI接口的请求通道派发指令,协处理器译码出该指令需要访问存储器,则将存储器独占信号拉高,协处理器通过存储器请求通道向主处理器LSU接口发起读写请求,主处理器通过存储器反馈通道在多个周期之后返回结果,协处理器继而将存储器独占信号拉低,如图7所示。
(7)主处理器向协处理器通过EAI接口的请求通道派发指令,协处理器译码出该指令需要访问存储器,则将存储器独占信号拉高,协处理器通过存储器请求通道向主处理器LSU接口发起读写请求,主处理器通过存储器反馈通道在多个周期之后返回结果,但是结果指示读写存储器是发生了错误,协处理器继而将存储器独占信号拉低,如图8所示。
(8)主处理器向协处理器通过EAI接口的请求通道派发指令,协处理器译码出该指令是个非法指令,其通过反馈通道返回错误标志,如图9所示。进一步的描述EAI接口存储器接口指令访问存储器资源的实现机制过程如下。
(1)主处理器的LSU接口为EAI协处理器预留的专用访问通道基于ICB总线标准,如图10所示,LSU接口会经过地址判断,判断是处理器EXU接口的访问还是EAI接口的访问,接着通过LSU接口对DTCM(处理器内核中数据传输总线)和ITCM(处理器内核中指令传输总线)进行访问,返回的结果再经过数据对齐,写回通用寄存器和EAI接口。
(2)为了防止后续指令访问存储器和EAI协处理器访问存储器形成竞争死锁。协处理器在接收到EAI接口的请求通道发送过来的指令后进行译码,如果发现是需要访问存储器资源的协处理器指令,则需立即将存储器独占信号拉高,主处理器将会阻止后续的指令继续访问存储器资源。
(3)协处理器需要访问存储器是通过ICB总线的存储器请求通道向主处理器的LSU接口发起请求。存储器请求通道中的信息包括需要访问的存储器地址,访问是读或者是写操作。如果是读操作,意味着对主处理器进行32位对齐的一次读操作;如果是写操作,则通过存储器请求通道中的写数据和字节掩码控制的数据和粒度。
(4)主处理器的LSU接口在完成存储器读写操作之后,通过ICB总线的存储器反馈通道向协处理器反馈。如果是读操作,存储器反馈通道中的信息包括返回的读数据,和本次读操作是否发生了错误。如果是写操作,存储器反馈通道的信息仅包含本次写操作是否发生了错误。
(5)由于协处理器和主处理器LSU接口的ICB总线采取的是valid-ready方式的同步握手接口,因此只要主处理器的LSU接口能够先后连续多次接受存储器访问操作,则协处理器可以先后连续多次发送多个存储器读写请求。
(6)协处理器在完成对存储器的访存之后,需要将存储器独占信号拉低,主处理器将会释放LSU接口允许后续的指令继续访问存储器资源。
以上所述仅为本发明所公开的一种适用于RISC-V架构的协处理器接口的优选实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种适用于RISC-V架构的协处理器接口,其特征在于,包括:请求通道、反馈通道、存储器请求通道和存储器反馈通道,其中:
所述请求通道,用于供主处理器在执行阶段将指令信息和源操作数派发给协处理器;
所述反馈通道,用于供协处理器反馈主处理器告知其已经完成了该指令,并将结果写回主处理器;
所述存储器请求通道,用于供协处理器向主处理器发起存储器读写请求;
所述存储器反馈通道,用于供主处理器向协处理器返回存储器读写结果。
2.根据权利要求1所述的一种适用于RISC-V架构的协处理器接口,其特征在于,所述请求通道包括以下接口信号:eai_req_valid信号、eai_req_ready信号、eai_req_inst信号、eai_req_rs1信号和eai_req_rs2信号,其中:
所述eai_req_valid信号,用于表示所述主处理器向所述协处理器接口发送指令请求信号;
所述eai_req_ready信号,用于表示所述协处理器接口向所述主处理器返回指令接收信号;
所述eai_req_inst信号,用于表示所述主处理器所发送的指令的完整编码;
所述eai_req_rs1信号,用于表示所述主处理器输出到所述协处理器接口的源操作数1的低32比特值;
所述eai_req_rs2信号,用于表示所述主处理器输出到所述协处理器接口的源操作数2的低32比特值。
3.根据权利要求1所述的一种适用于RISC-V架构的协处理器接口,其特征在于,所述反馈通道包括以下接口信号:eai_1cyc_type信号、eai_req_instr信号、eai_1cyc_rdat信号、eai_rsp_valid信号、eai_rsp_rdat信号和eai_rsp_ready信号,其中:
所述eai_1cyc_type信号,用于表示单周期指令指示标志;
所述eai_1cyc_rdat信号,用于表示所述协处理器接口返回的单周期指令的执行结果的低32比特值;
所述eai_rsp_valid信号,用于表示多周期指令返回数据有效标志信号,由所述协处理器接口反馈到所述主处理器;
所述eai_rsp_rdat信号,用于表示所述协处理器接口接口返回的多周期指令的执行结果的低32比特值;
所述eai_rsp_ready信号,用于表示所述协处理器接口向主处理器发送访问反馈接收信号。
4.根据权利要求1所述的一种适用于RISC-V架构的协处理器接口,其特征在于,所述存储器请求通道包括以下接口信号:eai_icb_cmd_valid信号、eai_icb_cmd_ready信号、eai_icb_cmd_addr信号、eai_icb_cmd_read信号、eai_icb_cmd_wdata信号和eai_icb_cmd_size信号,其中:
所述eai_icb_cmd_valid信号,用于表示所述协处理器接口向所述主处理器发送的所述存储器的访问请求信号;
所述eai_icb_cmd_ready信号,用于表示所述主处理器向所述协处理器接口发送的所述存储器的访问接收信号;
所述eai_icb_cmd_addr信号,用于表示EAI向主处理器发送的存储器访问地址;
所述eai_icb_cmd_read信号,用于表示所述存储器访问操作;
所述eai_icb_cmd_wdata,用于表示所述协处理器接口写数据到所述存储器里;
所述eai_icb_cmd_size信号,用于表示访问所述存储器数据的字节大小。
5.根据权利要求1所述的一种适用于RISC-V架构的协处理器接口,其特征在于,所述存储器反馈通道包括以下接口信号:eai_icb_rsp_valid信号、eai_icb_rsp_ready信号、eai_icb_rsp_rdata信号和eai_icb_rsp_err信号,其中:
所述eai_icb_rsp_valid信号,用于表示所述主处理器向所述协处理器接口发送所述存储器的访问反馈请求信号;
所述eai_icb_rsp_ready信号,用于表示所述协处理器接口向所述主处理器发送所述存储器的访问反馈接收信号;
所述eai_icb_rsp_rdata信号,用于表示所述存储器读操作返回的数据;
所述eai_icb_rsp_err信号,用于表示所述存储器访问反馈的错误标志。
6.根据权利要求1所述的一种适用于RISC-V架构的协处理器接口,其特征在于,所述主处理器为协处理器预留的专用访问通道基于ICB总线标准。
7.根据权利要求6所述的一种适用于RISC-V架构的协处理器接口,其特征在于,所述ICB总线采取的总线握手方式为同步总线协议。
8.根据权利要求1-7任意一项所述的一种适用于RISC-V架构的协处理器接口,其特征在于,所述协处理器接口基于custom指令进行协处理器扩展。
9.根据权利要求8所述的一种适用于RISC-V架构的协处理器接口,其特征在于,所述custom指令为32位,包括opcode编码段、rd编码段、xs2编码段、xs1编码段、xd编码段、rs1编码段、rs2编码段和funct7编码段八个指令编码段,其中:
所述opcode编码段,为指令的第0位至第6位区间,使用编码custom-0、custom-1、custom-2和custom-3指令组,所述编码custom-0、custom-1、custom-2和custom-3指令组分别为0001011、0101000、1011011和1111011;
所述rd编码段,为指令的第7位至第11位区间,为目的寄存器的索引;
所述xs2编码段,为指令的第12位,用于控制是否需要读源寄存器rs2,如果xs2位的值为1,则表示该指令需要读取由rs2比特位索引的通用寄存器作为源操作数2;如果xs2位的值为0,则表示该指令不需要源操作数2;
所述xs1编码段,为指令的第13位,用于控制是否需要读源寄存器rs1,如果xs1位的值为1,则表示该指令需要读取由rs1比特位索引的通用寄存器作为源,操作数1;如果xs1位的值为0,则表示该指令不需要源操作数1;
所述xd编码段,为指令的第14位,用于控制是否需要写目标寄存器rd,如果xd位的值为1,则表示该指令需要写回结果至由rd比特位指示的目标寄存器;如果xd位的值为0,则表示该指令无需写回结果;所述rs1编码段,为指令的第15位至第19位区间,为源操作数1的索引;
所述rs2编码段,为指令的第20位至第24位区间,为源操作数2的索引;
所述funct7编码段,为指令的第25位至第32位区间,作为额外的编码空间,用于编码更多的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363295.1A CN110083569A (zh) | 2019-04-30 | 2019-04-30 | 一种适用于risc-v架构的协处理器接口 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363295.1A CN110083569A (zh) | 2019-04-30 | 2019-04-30 | 一种适用于risc-v架构的协处理器接口 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110083569A true CN110083569A (zh) | 2019-08-02 |
Family
ID=67418178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910363295.1A Withdrawn CN110083569A (zh) | 2019-04-30 | 2019-04-30 | 一种适用于risc-v架构的协处理器接口 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083569A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110806899A (zh) * | 2019-11-01 | 2020-02-18 | 西安微电子技术研究所 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
CN111159094A (zh) * | 2019-12-05 | 2020-05-15 | 天津芯海创科技有限公司 | 一种基于risc-v的近数据流式计算加速阵列 |
CN111459546A (zh) * | 2020-03-30 | 2020-07-28 | 芯来智融半导体科技(上海)有限公司 | 一种实现操作数位宽可变的装置及方法 |
CN112181496A (zh) * | 2020-09-30 | 2021-01-05 | 中国电力科学研究院有限公司 | 一种基于开源指令集处理器的ai扩展指令执行方法、装置、存储介质及电子设备 |
CN113806250A (zh) * | 2021-09-24 | 2021-12-17 | 中国人民解放军国防科技大学 | 通用处理器核心与向量部件的协同方法、接口及处理器 |
TWI792676B (zh) * | 2021-10-18 | 2023-02-11 | 晶心科技股份有限公司 | 積體電路與執行快取管理操作的方法 |
-
2019
- 2019-04-30 CN CN201910363295.1A patent/CN110083569A/zh not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110806899A (zh) * | 2019-11-01 | 2020-02-18 | 西安微电子技术研究所 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
CN111159094A (zh) * | 2019-12-05 | 2020-05-15 | 天津芯海创科技有限公司 | 一种基于risc-v的近数据流式计算加速阵列 |
CN111459546A (zh) * | 2020-03-30 | 2020-07-28 | 芯来智融半导体科技(上海)有限公司 | 一种实现操作数位宽可变的装置及方法 |
CN111459546B (zh) * | 2020-03-30 | 2023-04-18 | 芯来智融半导体科技(上海)有限公司 | 一种实现操作数位宽可变的装置及方法 |
CN112181496A (zh) * | 2020-09-30 | 2021-01-05 | 中国电力科学研究院有限公司 | 一种基于开源指令集处理器的ai扩展指令执行方法、装置、存储介质及电子设备 |
CN113806250A (zh) * | 2021-09-24 | 2021-12-17 | 中国人民解放军国防科技大学 | 通用处理器核心与向量部件的协同方法、接口及处理器 |
TWI792676B (zh) * | 2021-10-18 | 2023-02-11 | 晶心科技股份有限公司 | 積體電路與執行快取管理操作的方法 |
US11797442B2 (en) | 2021-10-18 | 2023-10-24 | Andes Technology Corporation | Integrated circuit and method for executing cache management operation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083569A (zh) | 一种适用于risc-v架构的协处理器接口 | |
US11663135B2 (en) | Bias-based coherency in an interconnect fabric | |
US11204867B2 (en) | PCIe controller with extensions to provide coherent memory mapping between accelerator memory and host memory | |
KR101895763B1 (ko) | 노드들 사이의 i/o 서비스 및 메모리 공유 | |
JP6351682B2 (ja) | 装置および方法 | |
CN109154924B (zh) | 多个上行链路端口设备 | |
ES2675512T3 (es) | Instrucción para calcular la distancia a un límite de memoria específico | |
RU2598814C2 (ru) | Команда векторного типа для поиска неравнозначного элемента | |
ES2680147T3 (es) | Instrucción para cargar datos hasta una frontera de memoria especificada indicada por la instrucción | |
KR101964350B1 (ko) | 다중 레지스터 메모리 액세스 명령어들, 프로세서들, 방법들 및 시스템들 | |
CN108614783B (zh) | 一致性协议表 | |
TWI471730B (zh) | 用以促進在異質平台中共享指標之方法及設備 | |
Johns et al. | Introduction to the cell broadband engine architecture | |
JP6373425B2 (ja) | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 | |
TWI434181B (zh) | 電腦系統中溝通中斷之處理器中斷裝置、計算方法及電腦系統技術 | |
JP2017504089A5 (zh) | ||
JP5985526B2 (ja) | システムコールのためのロバスト且つ高性能な命令 | |
TW201732550A (zh) | 用於載入索引和散佈運算之指令和邏輯 | |
KR20170001577A (ko) | 트랜잭션적인 전력 관리를 수행하기 위한 하드웨어 장치들 및 방법들 | |
JP2018502364A (ja) | 実行のためのデータ要素の読み込みにおいて空間的局所性を考慮する装置および方法 | |
BR102016012096A2 (pt) | Hardware apparatus to improve performance of state dependent computers | |
CN114661625A (zh) | 处理器核高速缓存内的推测性解压缩 | |
CN107562673B (zh) | 一种应用于嵌入处理器总线协议转换桥接装置 | |
TWI783742B (zh) | 存取記憶體的電子裝置及資料寫入方法 | |
CN114461548B (zh) | 加速器结构 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190802 |
|
WW01 | Invention patent application withdrawn after publication |