摘要:分析表明,AHB总线是一种专为高性能同步传输设计的总线,直接连接CPU、片上内存、DMA和外部内存接口。AHB协议规定的时序与RAM时序存在差异,导致当AHB发出写操作后立即发出读操作时,SRAM无法对在当前周期对这一读操作进行处理,需要至少插入一个时钟周期的以等待地址线被释放。这一等待导致总线效率降低,无法在一个周期发起一次操作。针对以上问题对基于AHB协议的同步RAM接口进行设计,通过调整读写顺序以实现乱序操作来消除等待周期,并对优化后的模块进行充分验证及性能测试。经模块仿真及测试,提出的方法能够有效提高AHB总线访问SRAM的效率,具备较高的工程应用价值。
加入收藏
引言
AHB(AdvancedHighPerformanceBus)总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的,由于其规范严谨、功能丰富、总线效率高被大多数SoC设计采用。
AHB总线的地址相位信息与数据相位信息不交叠,因此传输具备流水特性[1]。RAM读写时序与AHB总线时序存在差异,在被写入时,地址信息与数据信息处于同一相位,使得传输不具备流水特性。这一差异导致AHB在发出写操作的下一个周期立即发出读操作时,SRAM将无法立刻对这一读操作的地址进行处理,至少插入一个周期的等待以消化上一条指令的写地址相位信息,这一个周期的等待将导致总线效率降低。
在许多SoC芯片中,为了加速等目的或因资源受限等因素,CPU部分程序的运行以及部分数据的读写将直接在RAM中进行,这就将涉及RAM与总线频繁的交互,因此对RAM的读写效率将直接影响系统性能。事实上,CPU内核的速度越来越快,与存储器之间的速度差距日益增加,使得存储器系统已经成为当前制约系统性能的瓶颈之一[2]。
在已有SRAM设计及研究中,各个研究的侧重点不尽相同。文献[3,4]中,Ra,Po等人对SRAM结构进行改进以减小访问延迟即提高稳定性;文献[5]中,Sr等人实现了基于AHB-lite协议的SRAM控制器,仅完成了基本功能,时序功耗面积等优化并未体现;文献[6]中,Hu等人同样实现了基于AHB的SRAM控制器,与文献[5]类似,仅关注了相关功能的实现;文献[7,8]中,Han,Liu等人对于基于AHB协议的SRAM进行设计,同时对功耗进行优化。对现有文献进行分析可以发现,已有关于SRAM的优化研究大多是存储器自身的结构的优化,而实际应用中基于总线的SRAM设计大多停留在功能的实现或功耗的优化。对于满足协议基础上的算法优化鲜有提及。
基于此,本文设计了基于AHB总线的高性能SRAM控制器,通过增加一级缓存调整读写优先级,消去read-after-write需要等待的时钟周期,有效提高AHB总线与SRAM交互效率,进而提高系统性能。
1、原理与设计
1.1时序分析
AHB总线时序具有流水特性,在连续的两个周期内,第一个周期发出地址相位信息,第二周期发出或接收数据相位信息,同时发出下一次操作的地址相位信息。时序图如图1所示。图1中AHB总线依次发出读-写-读。
图1AHB读写时序下载原图
SRAM访问时序不具备流水特性,在主设备对其发起读操作时,第一个时钟周期接收地址,第二个周期返回读数据;而当主设备对其发起写操作时,将在同一个周期接受地址和写数据。时序图如图2所示,图中SRAM依次接收读-写-读。
图2SRAM时序下载原图
当AHB总线对SRAM发起访问时,由于协议的差异需要进行时序转换,时序图如图3所示,图中依次时AHB对SRAM发起读-写-读操作。通过时序图我们可以看到,在AHB向SRAM发起写操作时,SRAM将在第二个时钟周期接收地址信息。如果在这个周期AHB连续发起下一个读操作,根据协议,SRAM要在当前周期接收这一读操作的地址信息,这将造成地址线的冲突而出现错误。为避免此类冲突,AHB侧的hready应拉低,表示从机未准备好接收当前主机发起的指令,插入一个时钟周期的等待。
图3AHB访问SRAM时序下载原图
此时,如果调整SRAM侧执行读写顺序,优先处理读指令,以乱序操作代替原来的顺序操作则可以有效消除等待周期,如图4的周期3~4。在下一节中会详细说明。
图4优化时序下载原图
1.2时序优化设计
对控制器模块增加一级缓存,总线对SRAM发起访问时(图3),控制器总是缓存到来的每一个写指令,并在下一条指令请求到来时。
决定是否释放。如果第二条指令依然是写操作,则释放缓存中的第一个写操作,同时缓存当前写操作。如图4中时钟周期1~2所示,根据AHB协议及存储器读写时序,EM侧应在第一个时钟周期接收AHB发出的地址WA0,经优化后WA0缓存并在第二个时钟周期被接收;如果第二个请求是读操作,则优先完成读操作,寄存的写操作继续保持。如图4中时钟周期2~4所示,AHB总线依次发出的指令为读-写-读,地址依次为WA1-RA2-WA3。如果按照顺序接收,EM侧接收到的地址顺序应与AHB侧发出的地址顺序一致,经时序优化后,SRAM侧优先处理读操作,执行指令的顺序依次是读-写-写,即接收地址的顺序依次为RA2-WA1-WA3;如果总线连续发出了几个读操作,则当前被寄存的写操作持续保持被寄存的状态,直到下一个写操作到来再进行释放。例如AHB侧发出WA4-RA5-RA6-RA7-WA8,则EM侧处理的顺序依次为RA5-RA6-RA7-WA4-待定。
然而,存在一种情况即当前读操作要访问的地址是一级缓存中未真正写到EM侧的写操作的地址,由于这一写操作未完成,将导致读操作读回旧数据。如图4中时钟周期5-7,如果单纯地调整WA4和RA4的读写顺序,将导致EM侧在执行RA4操作时读回上一个存储在A4的数据,无法获得最新的数据。因此在每一条指令来临时,EM侧在判断该指令是否为读操作之后,如果是读操作还应再判断该读地址与寄存器内缓存的地址是否一致,即地址是否冲突。如果不一致则进行时序优化,令读操作优先;如果一致则按照顺序执行指令,释放缓存中的写操作,如图4中时钟周期5~7所示。经过以上优化,由于不再出现read-after-write带来的地址线冲突,SRAM的访问时序也具备了流水的特性,除了非常小概率的地址冲突外,优化后的控制器能够在一个周期处理一次总线访问。图5时序优化逻辑流程图。
图5时序优化逻辑流程图下载原图
1.3状态机设计
本模块的状态机根据一级缓存寄存器的使用情况进行设计。
由于AHB总线采用多主多从的架构,因此在集成的SoC环境中,应考虑到存储器的多端共访。当有多个主设备对存储器发起访问时,需要仲裁模块对多个主设备发起的访问进行仲裁,向未获得访问权的主设备返回wait信号,同时拉低AHB总线的hready以示等待。此时,如果只有一个地址寄存器来调整续写顺序,将无法满足集成环境下的仲裁,因此,此还应设有额外的一个地址寄存器以及一个数据寄存器以满足仲裁功能的需求。
由于读操作和写操作的行为不一样,因此在状态机的设计中,寄存器被读操作占用或写操作占用的状态应该区分开来。
基于此,本接口模块设有三个状态基本组成元素,寄存器1中缓存读指令(WB1)、寄存器2中缓存读指令(WB1)、寄存器中缓存写指令(RH)。根据时序设计,状态机包含以下状态:①IDLE:初始状态;②WB0:reg0被写操作占用状态;③WB1:reg1被写操作占用状态;④WB0WB1:reg0/1均被写操作占用,且下一次释放reg0中的操作;⑤WB1WB0:reg1/0均被写操作占用,且下一次释放reg1中的操作;⑥RH:读操作被寄存状态;⑦RHWB1:reg0被读操作占用,reg1被写操作占用,且下一次释放读操作;⑧RHWB0:reg1被读操作占用,reg0被写操作占用,且下一次释放读操作;⑨WB0RH:reg0被写操作占用,reg1被读操作占用,且下一次释放写操作;⑩WB1RH:reg1被写操作占用,reg0被读操作占用,且下一次释放写操作。根据实际设计,状态机跳转如图6所示。
图6状态机跳转下载原图
2、实验
实验部分分为功能验证和性能测试。在功能验证中,将对控制器基本功能进行验证,以确定基本读写、猝发操作、异常中断、仲裁、优化开关等功能的正确性;在性能测试中,将使用Cortex-M4向SRAM发起访问,通过基准程序对优化前后性能进行测试及比较。
2.1功能验证
搭建测试平台,对接口模块功能进行测试。测试平台结构如图7所示。
图7测试平台架构下载原图
其中,AHB_master为总线功能模型,产生AHB总线读写访问时序;SRAM_slave为模拟SRAM模型,接收写数据及返回读数据;AHB_rd_monitor为读监视器,实时监视AHB总线的读地址对应的返回数据,并于期望参考值进行比较;EM_wr_monitor为写监视器,实时监测EM写地址对应的写数据,并于期望参考值进行比较。
在代码覆盖率方面,覆盖率收集结果如图8所示。其中,toggle覆盖率较低的原因是考虑到验证效率,测试主要针对1k以内的地址空间,地址总线高段位未进行测试。在功能覆盖率方面,重要功能点覆盖列表如表1所示。
图8覆盖率统计结果下载原图
表1重要功能点测试列表下载原表
其中,功能点1~3为基本功能验证,功能点4所述的宏开关为本文优化功能启动开关。优化开关打开时仿真波形图如图9所示,读写行为正确,在地址未冲突的情况下读写顺序调整。由于对发生仲裁的情况也进行了模拟仿真,mwaitn随机拉低,所以波形图中hready未表现持续拉高。
图9优化后仿真波形图下载原图
2.2性能测试
将SRAM控制器模块集成到本次实验所用的SoC系统中,该系统采用ARMCortex-M4作为CPU。通过V2.1版本的基准程序Dhrystone对SoC的性能进行评估,Dhrystone是测量处理器运算能力的最常见基准程序之一,在0等待时(即理想情况下),Cortex-M4在1s内每MHz可执行1.25M个Dhrystone指令[9]。测试的编译器采用ARM-none-eabi-gccV4.7.2,编译优化选项设置为Level3。
分别开启和关闭总线效率优化宏开关,对效率优化前后性能进行对比。优化开关关闭时,系统性能测试结果为1.18MIPS/MHz。优化开关打开时,系统性能测试结果为1.24MIPS/MHz。经过本模块优化,AHB总线对SRAM访问效率提高约5%。性能对比如图10。
图10性能对比图下载原图
3、结语
针对AHB总线访问SRAM无法在写操作后立刻发出读请求而造成的总线效率降低进行时序优化,重新设计SRAM控制器并对模块进行了充分验证。理论分析和试验结果表明,优化后的接口模块能有效提高AHB总线对同步SRAM访问的效率。该模块在不改变系统中各个子模块接口的情况下进行优化,因此方便已有系统的修改和集成,优化思想能够广泛应用在基于AHB总线协议设计的SoC系统中。有一点需要注意的是,在多个主对一个同步RAM进行竞争访问时,因为存在一级缓存,不同主访问权的变更可能导致读写发生延迟,或者个别数据出现错误,此时应添加额外的逻辑加以判断和控制。
参考文献:
[7]韩朋.基于AHB总线SRAM控制器的设计及优化[D].陕西:西安电子科技大学,2017.
[8]刘少龙.一种基于AHB总线的存储控制器设计[J].电子科技,2015,28(03):99-102+107.
[9]王诚.计算机组成与设计[M].北京:清华大学出版社,2004.
霍冠廷,刘清源,王良清,金玉丰.基于AHB总线的高性能SRAM控制器设计[J].集成电路应用,2020,37(05):22-25.
分享:
根据《高等学校计算机类专业人才培养战略研究报告暨核心课程体系》[6]中描述的12门核心课程知识模块关系图可看出,ICS课程和计算机组成与系统结构课程相互重叠的知识点大约占各自全部知识点的70%~80%,考虑到这两门课程知识点重叠问题,不同学校可根据不同的情况,选用以下课程开设模式中的一种来使用以上两本主教材实施教学。
2024-11-12由于日益增长的环境问题和全球石油危机,太阳能已成为一种有吸引力的替代能源[1],光伏组件的需求也在快速增长,为保证产能及组件品质的可靠性,高精度、高速光伏电池片的全自动串焊机已成为光伏企业的首选。而传统机械夹具定位精度低、速度慢、自动化程度低[2],以及存在许多其他不足。为了实现光伏电池片的自动化生产,有必要对电池片进行更精确位置检测。
2023-09-05以灯杆为构建基础,通过现代化的智能管理技术,使灯杆变得智能化,此时灯杆即被称为智慧灯杆。本文设计一种集供电、网络和控制于一体的多功能城市智慧灯杆,以达到自由调节该城市智慧灯杆的高度的目的,适用于不同环境与场地使用,避免因地面高度不一造成该城市智慧灯杆的路灯本体照明亮度不一的问题。
2023-09-01电子信息工程是信息时代发展的产物,其核心包括电子、计算机、信息等技术,打造智能化电子模块,由此来体现电子信息技术的应用功能优势。计算机电子新技术发展中,计算机属于源头,对电子信息技术工程来讲至关重要。科学技术发展基础上,对计算机电子信息技术工程的管理与应用提出高标准,基于此,必须加大计算机电子信息技术工程研究力度。
2022-04-26为提高PNS机房管理系统运行效率,对现有软硬件环境进行改进是十分必要的。本文对现有机房环境进行分析,明确了存在的局域网带宽不足、组网方式不合理、备份机制不合理、备份空间占用过大的问题,并提出了一个通过网络设备更新、组网方式调整以及管理软件升级来解决问题的具体措施,大大提升了机房管理水平。
2022-03-12对于公路路面来讲,裂缝是需要重视的病害之一。目前,我国对路面裂缝检测需要专门的路面管理部门定期进行安全巡视和检查,然后进行养护与整修。但是,人工检测存在效率低、精度低、费时、费力等缺点,此方法已经不再适用于如今的路面养护。随着数字图像处理技术的不断发展,使其技术在道路养护领域中得到广泛应用。
2021-10-08为提高考试的管理效率,有效识别参加考试的考生身份数据采集,各大型考试均有各自的编排系统,缩短了各个考试单位的工作流程。但由于很多考试都在高校进行各类考试,都采用考务工作人员二次人工现场排考,并通过监考教师人工识别学生身份,不能完全避免替考、作弊等异常行为的发生,减少考试过程中带来不必要的问题。
2021-10-08本文说明了计算机组装与维护实验室承担的实验项目,并从计算机组件展示功能区、维修工具管理功能区、计算机拆装功能区、计算机硬件维护功能区、计算机软件维护功能区入手,对计算机组装与维护实验室功能区的划分进行阐述,同时提出了实验室的优化建设及管理路径,旨在促进计算机组装与维护实验室建设及管理工作的升级。
2021-07-29随着科学技术的不断发展,计算机语言的使用也已较为普遍,而这其中C语言编程则为科学技术的发展做出了巨大的贡献。通过对C语言这一编程语言进行运用可以有效地提高人们的工作效率,并为人们的工作生活带来便利。本文则将对计算机C语言编辑程序的意义以及学生C语言编辑程序的学习现状进行一定的分析。
2021-04-19大数据虽具有经济价值,但并不是所有数据都能够作为信息发挥其经济价值,在浩瀚如烟的数据中,如何高效精准地对数据进行甄别、统计以及转化为有序的信息是计算机信息处理技术的核心内容。除此,计算机信息处理技术还包括信息系统技术与检索技术。在信息时代的今天,信息的处理、有序储存以及有效地利用不仅是市场发展的基础。
2021-03-22人气:5978
人气:2607
人气:2477
人气:1250
人气:1121
我要评论
期刊名称:单片机与嵌入式系统应用
期刊人气:1532
主管单位:工业和信息化部
主办单位:北京航空航天大学
出版地方:北京
专业分类:科技
国际刊号:1009-623X
国内刊号:11-4530/V
邮发代号:2-765
创刊时间:2001年
发行周期:月刊
期刊开本:大16开
见刊时间:10-12个月
您的论文已提交,我们会尽快联系您,请耐心等待!
你的密码已发送到您的邮箱,请查看!