集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

跟李凡老师学FPGA图像加速器之D03:加速器基础(20170427课堂笔记)

[复制链接]
 楼主| lcytms 发表于 2018-4-1 20:46:49 | 显示全部楼层
0951
        主机有命令和地址的输出端,从机有命令和地址的输入端,没有相反。
        而主从都有数据的输入和输出。
        好,现在我把虚线擦掉,加上加速器。
        加速器,accelerator。
        它既是主机,又是从机。
        它是双重角色。
        当它未获得授权的时候,加速器就是从机,就是仆人,跟任何仆人的地位完全相等。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-4-1 20:47:56 | 显示全部楼层
0952
        当它获得授权以后,它会成为主机,它要跟原来的老大要竞争资源。
        在我们这个例子里面,只有唯一的一个仆人。
        就是Memory。
        要竞争这个Memory。
        现在我们来看看,对于加速器该怎么做?
        由于它是主机,所以说它就应该有主机的一些职能,主机的端口。
        地址和命令,写成acc前缀,有地址的输出。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-4-1 20:49:17 | 显示全部楼层
0953
        命令,是主机,它能发命令。
        当它成为主机的时候,它能够发出地址和命令。
        当它成为从机的时候,它要能够接收地址和命令。
        什么时候是从机呢?
        ACC未获得授权的时候,它要被CPU访问,CPU要告诉它一些信息。
        acc_addr_in,acc_cmd_in。
        主机有的它有,从机有的它也有。
        另外主从都应该有的东西就是数据的输入和输出。
        主从都有数据输入和输出端。
        它当然也要有acc_data_out。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-4-1 20:50:27 | 显示全部楼层
0954
        主机有的它有,从机有的它也有。
        主从都有的它当然也要有。
        这ACC应该长成这个样子。
        刚才我擦掉的是CPU跟Memory之间的连接关系。
        CPU跟Memory之间的连接关系,虚线我绘制的时候,什么时候它会用呢?
        当主机获得资源的时候。
        主机什么时候获得资源呢?
        在我们这个例子里面,应该大多数时候主机都获得Memory的支配权。
        就是我刚才擦掉的虚线部分。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-4-1 20:52:19 | 显示全部楼层
0955
        因为主机指令在这里面,如果按照这么来做的话,指令在这里面。
        CPU在执行它运算的过程之中,我们知道要不停地读指嘛,所以CPU要接管这个Memory的。
        这个时候Memory听CPU的指挥。
        当CPU要控制ACC的时候,ACC实际上也是跟Memory一样,是获得相同的支配的地位。
        这个时候Memory的地址总线,ACC的地址总线,都是受CPU的地址总线控制的。
        cpu_addr_out接到这。
        这时候Memory接受主机的访问,接受CPU的访问。
        ACC也接受主机的访问。
        它们的地位是相等的。
        这个时候ACC是以从机的形式存在的。
        mem_cmd_in和acc_cmd_in都要接到cpu_cmd_out。
        mem_addr_in和acc_addr_in都要接到cpu_addr_out。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-4-1 20:53:05 | 显示全部楼层
0956
        这个时候CPU会通过它的地址和命令来访问Memory和ACC。
        究竟CPU访问的是Memory,还是ACC,怎么定的呢?
 楼主| lcytms 发表于 2018-4-1 20:53:53 | 显示全部楼层
0957
        不同的地址,有个地址映射表。
        它有它的地址范围,它有它的地址范围。
        所以说这个时候ACC的地位和memory完全相等。
        于是呢,CPU可以通过这种方式,访问ACC内部的寄存器。
        这些寄存器的地位就是外部设备,用唯一的地址指定来做访问。
        比如说像状态寄存器,像源地址寄存器、目标地址寄存器,等等。
        这些呢,都是由CPU通过完全相等的方式,来访问Memory和ACC。
        这是ACC是以从机的形式存在的。
        当ACC通过这种方式,CPU向ACC的状态寄存器发出了一次委托执行长整加速的任务,向它的状态寄存器写出了start以后,加速器ACC就获得了授权。
 楼主| lcytms 发表于 2018-4-1 20:55:15 | 显示全部楼层
0958
        获得对Memory控制的授权,它要对Memory以硬件的方式,一拍都不空闲,全力以赴地完成长整计算。
        8864嘛。
        源8个,目标8个,这个时候,ACC要访问它。
        现在我们来看看,在这种情况之下,加速器应该怎么做?
        或者加速器的共性。
        我刚才说了,这个时候的资源要被切换。
        就是Memory的资源,Memory是唯一的仆人,这个时候Memory听谁的呢?
        一仆二主。
        这个时候是由外部的一个第三方机构仲裁器来决定。
        稍后我们在word上做,现在随便画一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-4-1 20:56:28 | 显示全部楼层
0959
        仲裁器有什么特点呢?
        就是由资源的请求者,发出请求,然后根据仲裁器来决定仲裁给谁。
        这是仲裁结果arb_res。
        仲裁结果是它的输出。
        它有请求信号。
        它有两个请求。
        有谁的请求呢?
        有CPU的请求。
        只有主机才会发出对资源的请求。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-4-2 08:47:23 | 显示全部楼层
1000
        主机可能是两个,CPU的请求,ACC的请求。
        CPU要请求,ACC要请求。
        当然是通过硬件方式,所以说CPU要增加一个输出端口,cpu_req。
        主机有资源请求的端口,从机不可能有,Memory不可能有。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-23 23:39 , Processed in 0.065948 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表