集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

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

[复制链接]
 楼主| lcytms 发表于 2018-3-26 21:28:13 | 显示全部楼层
0941
        长整计算,计算完了第一个长整的任务,接着CPU可以让它做第二个长整的计算。
        这个呢,就是加速器和CPU配合的,FPGA加上CPU的一种特定的模式。
        其中有一些特点是共性的,有一些特点是专用的。
        我们研究加速器,对于我们FPGA的深入的运用,是必不可少的一个基础知识。
        因为我们FPGA很可能在工程里面,就会用到加速器。
        你单独地做通信,有可能。
        也有可能会遇见你做通信的几率,也有可能没有可能做通信。
        也有可能你做图像,也有可能你不做图像。
        但是你做加速器的这种几率会大得多。
        因为无论做什么,FPGA很多的运用就是做加速,accelerator。
        提速,跟CPU配合。
        所以说我们必须了解加速器这种特有的一些规律和方法。
 楼主| lcytms 发表于 2018-3-26 21:29:09 | 显示全部楼层
0942
        好,下面呢,我们就通过一个例子来说明一下,其中,加速器必然的形成的一些规律。
        之后呢,我们就可以了解,像绿皮书教材里面构成的加速器是怎么形成的。
        我们通过一个长整加速器的例子。
        如果我们要做一个长整的计算。
        8086是8位的,如果我们要做长整,64位的。
        8864,64个bit的计算。
        那么8086它会怎么做呢?
        它当然要是8个字节,要把8个字节分别地读进来。
 楼主| lcytms 发表于 2018-3-26 21:30:09 | 显示全部楼层
0943
        进行计算之后,每一次一个字节计算以后,还要写回到目标区。
        8字读,8字写。
        再加上中间的过程,那是很长的,而长整的计算,我们只要一个加速器,CPU通知这个加速器,执行对应的运算,告诉这个加速器,原始的数据在哪。
        在memory里面是8位的。
        会有8个单元来保存。
        8864。
        目标也是8个单元保存。
        CPU就要按照我们现在的基本规律,CPU首先要加速器以从机的形式接受CPU的指挥。
        CPU向它发出必要的信息,O_BASE在哪?
        D_BASE在哪?
        现在D也可以说成是目标,destination。
 楼主| lcytms 发表于 2018-3-29 08:46:37 | 显示全部楼层
0944
        目标的基地址。
        原始数据的基地址,O_BASE,Original。
        然后呢,还要发出它的start命令。
        等等一系列。
        好,我们首先来看看,如果是没有加速器的情况,会怎么做?
        由此研究它们的共性。
        CPU,就做这个长整的计算。
        CPU有哪些端口?
        CPU有它的地址端口。
        我们刚刚完成CPU不久。
        我写成cpu_addr_out,是地址的输出端。
        CPU是主机。
        什么是主机呢?
        就是主人嘛,它有权支配资源,当然它就能够发出地址信号和控制信号。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-3-29 08:48:26 | 显示全部楼层
0945
        cpu_cmd_out。
        它能够发地址,能够发控制。
        主机它有这个权力嘛。
        它能够访问设备,所有的设备都是根据地址映射表不同的地址上进行访问。
        另外呢,它要执行对外围设备的写操作,它就必须要发出数据,有数据的输出端。
        cpu_data_out。
        我这里特别写上有输入输出。
        夏老师的教材上直接用o来描述out,input用i来描述。
        CPU必定有地址的输出端,有命令的输出端,有数据的输出端。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-3-29 08:50:53 | 显示全部楼层
0946
        这是写操作。
        它要有数据的输入端。
        cpu_data_in。
        我们研究它的共性。
        对于主机而言,必须有地址、命令、数据的输出端,有数据的输入端。
        主机需不需要有地址和命令的输入端呢?
        它不需要。
        主机就是老大。
        它说了算。
        它当然不需要接收命令。
        它是命令的发出者,命令的发出者,对数据的访问,就有地址的输出。
        它本身并不接收命令。
        当然它也不需要有地址和命令的输入端。
        所以说,主机有地址、命令的输出端,没有地址命令的输入端,主机有数据的输入、数据的输出。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-3-30 09:23:13 | 显示全部楼层
0947
        它必定会有数据的输入、数据的输出,因为它要支持读写。
        在没有加速器的情况之下,我们写MEMORY,从机。
        MEM也有很多端口,数据、指令都在这。
        它要接受访问,当然需要地址,mem_addr_in,是地址的输入端。
        它有地址的输入端,指向其中一个单元。

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-3-30 09:24:11 | 显示全部楼层
0948
        它要有命令的输入端,它是从机,它要接收命令,接收地址。
        从机必定会有这些。
        同时我们也知道,memory嘛,我们要读它的时候,它会读出数据来,是有mem_q,读出来。
        或者说我写成mem_data_out。
        有数据的输出端。
        同时memory,至芯CPU要写他的时候,memory一定会有数据的输入端。
        memory,从机。
        看看从机有哪些端口?

本帖子中包含更多资源

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

x
 楼主| lcytms 发表于 2018-3-30 09:25:07 | 显示全部楼层
0949
        从机要接收命令,就会有地址和命令的输入端,从机可不可能有地址和命令的输出端。
        它是从机,它是仆人,它只接收命令,所以说,它就没有发出命令的权力。
        仆人的地位比较低嘛。从奴隶到将军。
        当然,作为从机,它要接收数据,它就有数据的输入端,要反馈数据,就要有数据的输出端。
        所以说从机和主机一样,都有数据的输入和输出。
        但是从机只有地址和命令的输入端。
        当非加速器模式的时候,如果我们做长整计算,CPU和Memory该如何交换它们的控制信号呢?
 楼主| lcytms 发表于 2018-4-1 20:45:40 | 显示全部楼层
0950
        当然是这样,会把命令相连,会把地址相连。
        CPU的地址、命令会接入到Memory的地址和命令。
        当CPU要写Memory的时候,会把CPU输出的数据连接到Memory的数据输入端,当CPU要读Memory的时候,显然会把Mem_data_out连接到它数据的输入端。
        这样连。
        我绘制的虚线部分,是非加速器结构,CPU和Memory的连接关系。

本帖子中包含更多资源

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

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

本版积分规则

关闭

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

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

GMT+8, 2024-12-24 00:32 , Processed in 0.065842 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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