19-总线及总线标准(一)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

未命中,读主存地址10010H,添 加表项1,返回03H
MOV MOV
Cache
地址 表项0 表项1 表项2 表项3 …… 1001H 04 H 03 H 02 H 01 H 数据块
问题: 实际上,地址[10018H]对 应的数据是“关键字”, 是影响性能的关键因素
10010H
…… …..
对应地址
《微型计算机原理》 28
《微型计算机原理》 5
总线仲裁器(Bus Arbiter)
功能:在总线上有多个主模块同时请求使用 总线时,决定由哪个主模块获得总线控制权 目的:让总线得到合理、高效地使用
主模块 1
主模块 2
req1
gnt1
req2 gnt2
仲 裁 器
bus_busy
if ( bus_busy is false) begin if ( req1 == 1 ) gnt1= 1 ; else if ( req2 == 1 ) gnt2= 1 ; end
*编码为二进制
《微型计算机原理》 21
主模块控制信号:HBURST
HBURST[2:0]定义了传输长度和地址变化方式
编码 000 001 010 011
100 101 110 111
类型 SINGLE INCR WRAP4 INCR4
WRAP8 INCR8 WRAP16 INCR16
说明 Singletransfer Incrementingburstofunspecifiedlength 4-beatwrappingburst 4-beatincrementingburst
Block
4444 Cache Line 8888 Cache Line 1111 Cache Line ……
《微型计算机原理》 25
Burst传输的应用(2)
外设和主存之间的大量连续数据传输
若传输过程中出现外设未准备好的情况,则可 以使用传输状态“BUSY”
主存中不同区域之间的大量连续数据传输
主要内容
一、总线的基本结构 二、总线协议实例
《微型计算机原理》
2
总线的基本概念
总线
在多于两个模块(设备或子系统)间传送信息 的公共通路
总线的组成
传输信息的电路 管理信息传输的协议
《微型计算机原理》
3
基于总线的典型系统示意图
仲裁器
地址 数据 控制
地址
数据 控制
从模块1
主模块1
总 线
10010H
…… …..
对应地址
《微型计算机原理》 29
地址回卷的要点说明
地址回卷的边界(假设数据宽度为4字节)
WRAP4:在16的整数倍的地址处回卷(4×4) WRAP8:在32的整数倍的地址处回卷(4×8) WRAP16:在64的整数倍的地址处回卷(4×16)
传输地址变化示例
INCR4: 0x38 0x3C 0x40 0x44 WRAP4:0x38 0x3C 0x30 0x34 INCR4: 0x30 0x34 0x38 0x3C
地址回卷的传输应用举例
“关键字优先”的高速缓存行填充
本例中可采用WRAP4类型的总线传输 地址[10080H]对应的数据将首先返回 若采用INCR4类型的总线传输,则地址[10080H] 对应的数据将作为第三个数据返回,延迟较大
Cache
地址 表项0 表项1 表项2 表项3 …… 1001H 04 H 03 H 02 H 01 H 数据块
主模块2
从模块2
从模块3
译码器
《微型计算机原理》 4
总线模块
总线主模块(Bus Master)
具有总线控制能力,在获得总线控制权之后能 启动总线传输(读数据或写数据) 示例:CPU、DMA控制器
总线从模块(Bus Slave)
能够对总线传输作出响应(接收写数据、返回 读数据、返回“错误”响应等),但本身不具 备总线控制能力 示例:存储器
Row Decoder
Word Lines ……
Memory Array
《微型计算机原理》
17
要点说明
从模块可以在传输过程中插入等待周期,以 便获得额外的时间
如暂存写数据的缓冲已满、读数据未准备好等
在等待周期中,主模块必须保持地址、控制 和写数据等信号的稳定
《微型计算机原理》
18
时序图3:三次连续的总线传输
发出 地址A 发出 地址B 发出 地址C
发出 数据A
传输A 完成 未准 备好
扩展
注意不同传输的地址和数据 在时间上的重叠(overlap)
传输B 完成
传输C 完成
《微型计算机原理》 19
要点说明
等待周期
地址A和C的传输中没有等待周期 地址B的传输中有一个等待周期,该传输的数据 阶段扩展了一个周期
《微型计算机原理》
9
一个包含多条总线的复杂系统
仲裁器
微处 理器 M 总 线 A M 仲裁器 总线 桥接器 S M 总 线 P 译码器 M 以太网
S
存储 S 控制器
M: 主模块接口 S: 从模块接口
S
译码器
控制器
真实系统中的很多 总线模块包含主模 块和从模块的双重 功能及接口
《微型计算机原理》 10
IDLE
INCR4
地址递增的4个数据的传输
《微型计算机原理》 23
要点说明
T1:传输开始,主模块发出第一个地址,驱 动HTRANS=NONSEQ,HBURST=INCR4 T2:主模块由于自身原因,暂时无法发出第 二个地址,因此驱动HTRANS=BUSY T3:主模块恢复正常传输,发出第二个地址, 驱动HTRANS=SEQ T7:主模块发出的第四个地址已被从模块采 样,无需再发出新的地址和控制信号,因此 驱动HTRANS=IDLE
起始地址相同
访问区域相同
《微型计算机原理》
30
主模块控制信号:HSIZE
HSIZE[2:0]定义了传输数据的宽度
编码
000
宽度(bit)
8
说明
字节(Byte)
001 010 011
100 101 110 111
16 32 64
128 256 512 1024
半字(Halfword) 字(Word) 四字(4-wordline) 八字(8-wordline) -
CPU作为主模块,读取内存数据时,内存控 制器作为总线从模块,往往需要插入数十到 数百个等待周期
列选 预充电
数据输出 数据 CPU 内存 BUS 控制器 地址 行选 BUS
Data In/Out Buffers Column Decoder Sense Amplifiers
Bit Lines ……
主要内容
一、总线的基本结构 二、总线协议实例
《微型计算机原理》
11
《微型计算机原理》
12
AHB的基本结构
《微型计算机原理》
13
时序图1: 一次简单AHB传输
主模块发出 地址和控制 主模块发出 写数据 主模块采样 读数据
时钟
主 模 块 从 模 块
地址
控制
写数据 准备好 读数据
从模块采样 地址和控制 从模块采样 写数据
sel3
总线逻辑电路示意图
授 权
仲裁器
申请
主模块 1
地址和控制
从模块 1 从模块 2 从模块 3 译码器
选中
《微型计算机原理》 8
写数据
主模块 2
读数据 和响应
Leabharlann Baidu
80386DX所对应的总线模型
主模块
从模块
80386DX 仲裁器
HOLD HLDA
I/O接口
总 线
存储器 译码器
从模块
DMA 控制器
主模块
Indicatesthefirsttransferofaburstorasingletransfer. Theaddressandcontrolsignalsareunrelatedtothe previoustransfer.(NONSEQUENTIAL)
TheremainingtransfersinaburstareSEQUENTIALand theaddressisrelatedtotheprevioustransfer.Thecontrol informationisidenticaltotheprevioustransfer.
写传输:从模块采样HWDATA信号,完成传输 读传输:主模块采样HRDATA信号,完成传输
《微型计算机原理》 15
时序图2:从模块插入等待周期的传输
扩展
扩展
未准 备好
主模块 发出地址 从模块 采样地址
未准 备好
准备好
主模块采样读数据 从模块采样写数据
《微型计算机原理》 16
从模块插入等待周期的典型情况
sel1
从模块 1 从模块 2 从模块 3
addr
译码示例
译 码 器
addr[15:0] 0000H ~0FFFH addr[15:0] 1000H ~1FFFH addr[15:0] 2000H ~2FFFH
《微型计算机原理》 7
sel2
假设总线地址为16位宽, 并以4K为单位划分从模块 的地址空间
8-beatwrappingburst 8-beatincrementingburst 16-beatwrappingburst 16-beatincrementingburst
*编码为二进制
《微型计算机原理》 22
时序图4: HTRANS和HBURST信号示例
传输开始
主模块忙
传输进行中
地址总线空闲
仲裁策略示例
《微型计算机原理》
6
总线译码器(Bus Decoder)
功能:根据当前控制总线的主模块提供的地 址,选择作为本次总线传输目标的从模块
case ( addr[15:12] ) 4’b0000: sel1 = 1 ; 4’b0001: sel2 = 1 ; 4’b0010: sel3 = 1 ; ... endcase
《微型计算机原理》 24
Burst传输的应用(1)
高速缓存的行填充(读)、行替换(写)
地址 地址
CPU Core
数据
Cache
数据
Block
Main Memory
有效位 1 0 1
地址 1000 3018 4530
数据 1111 5555 4444
……
……
……
2222 6666 3333 ……
3333 7777 2222 ……
《微型计算机原理》 14
传输完成
要点说明
① 在第一个时钟上升沿之后,主模块驱动 HADDR和Control信号 ② 在第二个时钟上升沿,从模块采样HADDR 和Control信号 ③ 在第二个时钟上升沿之后
写传输:主模块驱动HWDATA信号 读传输:从模块驱动HRDATA信号
④ 在第三个时钟上升沿
ARM体系结构 中定义的“字” 为32位(4个 字节),与 x86体 系 结 构 的定义不同
*编码为二进制
《微型计算机原理》 31
时序图6:两次不同数据宽度的总线传输
“2个半字数据”的传输
“3个字数据”的传输
地址递增2
地址递增4
《微型计算机原理》
32
从模块输出的响应信号
在AHB协议中,主模块一旦发起传输,就无 法取消 被访问的从模块必须给出响应(HREADY和 HRESP[1:0]信号),决定该传输如何继续:
主要内容
一、总线的基本结构 二、总线协议实例
教材相关章节: 《微型计算机基本原理与应用(第二版)》 第14章 总线及总线标准 第7章 微处理器的内部结构及外部功能特性 参考材料: “AMBA Specification” (Rev 2.0) Chapter 3 AMBAAHB
《微型计算机原理》 1
等待周期的副作用
因为地址B的传输中的等待周期,所以地址C的 传输的地址阶段受其影响而扩展了一个周期
《微型计算机原理》
20
主模块控制信号:HTRANS
HTRANS[1:0]定义传输中各周期的类型
编码 00 01 10 11 类型 IDLE BUSY NONSEQ SEQ 说明
Indicatesthatnodatatransferisrequired.TheIDLE transfertypeisusedwhenabusmasterisgrantedthebus, butdoesnotwishtoperformadatatransfer. Indicatesthatthebusmasteriscontinuingwithaburstof transfers,butthenexttransfercannottakeplace immediately.Thetransfershouldbeignoredbytheslave.
CPU M
M S S 存储器
DMAC
M S
网络 控制器
DMAC
M: 主模块接口
S: 从模块接口
《微型计算机原理》 26
时序图5:地址回卷的四个数据的传输
地址回卷
*HWRITE信号:1表示写传输,0表示读传输
《微型计算机原理》 27
地址回卷的传输应用举例
“关键字优先”的高速缓存行填充
设:DS=1000H ES=2000H MOV ;数据地址 BX, [18H] ;10018H CX, [30H] ;10030H DX, ES:[10H] ;20010H
相关文档
最新文档