Download presentation
Presentation is loading. Please wait.
1
C H A P T E R 8 体系结构对系统开发的支持
2
基于ARM的SoC设计技术
3
在线仿真器ICE(In-Circuit Emulator)
过去20多年 在线仿真器ICE(In-Circuit Emulator)
4
现在
5
基于ARM IP Core的SoC设计 可以取代ICE的几项技术: 1. 快速硅原形 (ARM综合器integrator)
2. ARMulator 3. JTAG SoC标准单元
6
ARM Integrator
7
ARMulator RealView ICE
8
JTAG(Joint Test Action Group)
JTAG(IEEE Standard Test Access Port and Boundary-Scan Architecture )
9
abe、ale、ape、dbe、lock和bl[3:0]
8.1 ARM存储器接口 ARM总线信号 A[31:0] D[31:0] /mreq seq /R/W及传送位数的信号mas[1:0] abe、ale、ape、dbe、lock和bl[3:0]
10
简单存储器接口(适合于ROM和SRAM)
由四片8位存储器构成32位宽的存储器
11
简单的ARM存储器系统控制逻辑
12
ROM等待控制状态转换图
13
ROM等待状态产生电路 ROM等待状态电路的时序
14
具有用于地址译码的等待状态的状态转换图
15
DRAM存储器的组织
16
ARM地址寄存器结构
17
DRAM时序图
18
一个内部周期之后的DRAM时序
19
问题:如何将电气上相互独立的两个或者多个部件连接在一起,使它们能够相互通信?
8.2 AMBA总线—引子:结构互连 问题:如何将电气上相互独立的两个或者多个部件连接在一起,使它们能够相互通信? 这一互连问题(Interconnection Problem)在计算机系统的硬件设计中普遍存在,遍及各个层次: CPU内部各个模块的互连 计算机内部各个部件的互连 计算机与外部各个IO设备之间的互连 多台计算机之间的互连 大规模网络的互连 思考和想象:结构互连你能想出多少种方式?
20
总线宽度 总线的主要参数 总线频率 总线带宽 又称总线位宽,指的是总线能同时 传送数据的位数。如16位总线就是 具有16位数据传送能力。
总线带宽(单位:MB/s) =(总线宽度/8)× 总线频率 总线工作速度的一个重要参数, 工作频率越高,速度越快。 通常用MHz表示。 总线频率 如:总线宽度32位,频率66MHZ,则 总线带宽=(32/8)* 66MHz=264MB/s 又称总线的数据传送率,是指在一 定时间内总线上可传送的数据总量, 用每秒最大传送数据量来衡量。 总线带宽越宽,传输率越高。 总线带宽
21
一个微处理器系统可能含有多条总线 原因: 数据宽度:高速总线通常提供较宽的数据连接。 成本:高速总线通常采用更昂贵的电路和连接器。
桥 低速总线 高速设备 总线互联的电路 低速设备 原因: 数据宽度:高速总线通常提供较宽的数据连接。 成本:高速总线通常采用更昂贵的电路和连接器。 桥允许总线独立操作,这样在I/O操作中可提供某些并行性。
22
8.2 AMBA总线 摩尔定律:半导体芯片上的晶体管数(密度)大约最多每两年(12-18个月)就翻一番。 -更多的处理器 -更多的存储器
-更多的外围功能器件 在不失去系统性能的情况下如何把它们连接起来? 而且要尽可能地高效率?
23
三种片内总线 AHB或ASB总线 APB总线 桥 ARM处理器核 宽带片上 RAM DMA控制器 宽带外部 RAM接口 UART PIO
定时器 键盘控制器 AHB或ASB总线 APB总线 AMBA总线结构 Wishbone总线结构 Avalon总线结构
24
事实上的片上总线标准
25
AMBA的发展历史 1995 – AMBA specification 1999 – AMBA 2 specification
APB peripheral bus and ASB system bus launched 1999 – AMBA 2 specification Added the easy to design-in AHB system bus APB changed from latch-based to clock-edge based design 2003 – AMBA 3 specification - Added high performance AXI interconnect and ASB obsoleted - AHB-Lite replaces AHB to remove redundant features - APB enhanced with wait-states and error response 1999 2003
26
AMBA总线 AMBA总线规范是由ARM公司推出的一种用于高性能嵌入式微处理器设计的片上总线标准,由于AMBA总线的开放性和其本身的高性能,以及由于ARM处理器的广泛应用,AMBA已成为SOC设计中使用最广泛的总线标准。 目前AMBA 总线规范的版本为3.0,它定义了三组不同的总线:AMBA高性能总线AHB (Advanced High-performance Bus),AMBA高性能系统总线ASB (Advanced System Bus)和AMBA 高性能外设总线APB (Advanced Peripheral Bus)。 AHB作为高性能的系统中枢总线驱动速度较快的设备,支持突发模式的数据传送和事务分隔,并支持流水线操作。 APB则是作为传送速度较低的外围设备总线,驱动速度较慢的设备。
27
典型的AMBA构架 AHB的特性 : 桥 AHB或ASB总线 APB总线 单个时钟边沿操作; 非三态的实现方式; 支持突发传输;
ARM处理器核 宽带片上 RAM DMA控制器 宽带外部 RAM接口 桥 UART PIO 定时器 键盘控制器 AHB或ASB总线 APB总线 AHB的特性 : 单个时钟边沿操作; 非三态的实现方式; 支持突发传输; 支持分段传输; 支持多个主控制器(最多16个模块); 可配置32位~128位总线宽度; 支持字节、半字和字的传输。
28
AHB总线的接口信号 时钟信号 仲裁信号 地址信号 控制信号 写数据 读数据 响应信号 AHB总线的接口信号
AHB 系统由主模块(Master)、从模块(Slave)和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都是由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器 、译码器、虚拟从模块、虚拟主模块等组成。 时钟信号 仲裁信号 地址信号 控制信号 写数据 读数据 响应信号 AHB总线的接口信号 除了时钟与仲裁信号之外,其余的信号皆通过多路器传送。
29
HCLK 总线参考时钟 HADDR 地址(由AHB主器件发出) HWRITE 传输方向:读/写(由AHB主器件发出) HREADY 传输完成响应(由AHB从器件发出) HWDATA 写入数据总线(从AHB主器件至AHB从器件) HRDATA 读取数据总线(从AHB从器件至AHB主器件) HRESP 传输状态(由AHB从器件发出) HBURST 脉冲模式(由AHB主器件发出) HTRANS 传输状态(由AHB主器件发出) HSIZE 脉冲长度(由AHB主器件发出) HPROT 保护类型(由AHB主器件发出)
30
AMBA总线-AHB 主单元 从单元 AHB总线 仲裁器 译码器 总线译码器用于传输译码工作,提供传输过程中从单元的片选信号。
只有主单元可在任何时刻使用总线。 AHB可以有一个或多个主单元。 主单元可以是RISC处理器、协处理器以及DMA控制器,以启动和控制总线操作。 可以响应(并非启动)读或写总线操作。 总线的从单元可以在给定的地址范围内对读写操作进行相应的反应。 从单元向主单元发出成功、失败信号或等待各种反馈信号。 从单元通常是其复杂程度不足以成为主单元的固定功能块,例如外存接口、总线桥接口以及任何内存都可以是从单元,系统的其他外设也包含在AHB的从单元中。 从单元 AHB总线 用来确定控制总线是哪个主单元,以保证在任何时候只有一个主单元可以启动数据传输。 一般来说仲裁协议都是固定好的,例如最高优先级方法或平等方法,可根据实际的情况选择适当的仲裁协议。 仲裁器 译码器 总线译码器用于传输译码工作,提供传输过程中从单元的片选信号。
31
AHB外设可能立即发送/接收数据,或通过发出HREADY信号插入等待状态。从器件也通过HRESP信号返回传输状态,这些状态可能如下
OKAY(成功): 传输成功-成功完成信号传输的缺省响应。 ERROR(错误):不成功的传输-表示出现了异常中断,例如访问一个不存在的内存地址。 RETRY(重试):从器件无法立即实现操作,主器件应在稍后重试。 SPLIT(等待):从器件将要求列队等待-从器件将在可以提供或接收数据时发出通知,可用于中断多个传输(脉冲)。 重试和等待的主要区别在于,重试表明从器件仍未就绪;主器件可在任意时刻重发命令。而等待包含的协议较为复杂,它就绪后将通过这一协议通知判优器。等待处理对从器件逻辑的要求较为复杂,并非必备的从器件功能。
32
AHB总线的互连
33
AHB总线主模块接口
34
AHB总线从模块接口
35
AHB总线仲裁器接口
36
AHB主器件判优信号 HREQ 总线要求(由AHB主器件发出)HGNT 总线指派(由AHB判优器发出) HLOCK 总线锁定(由AHB主器件发出) HMASTER 指定目前工作的主器件(由AHB判优器发出) HMASTLOCK 主器件执行锁定传输(由AHB判优器发出)
37
AHB基本传输 一个典型的AHB总线工作过程,它包括以下两个阶段:
地址传送阶段(address phase):它将只持续一个时钟周期。在HCLK的上升沿数据有效。所有的从单元都在这个上升沿来采样地址信息。 数据传送阶段(data phase):它需要一个或几个时钟周期。可以通过HREADY信号来延长数据传输时间,当HREADY信号为低电平时,就在数据传输中加入等待周期,直到HREADY信号为高电平才表示这次传输阶段结束。
38
AHB基本传输过程
39
Transfer在data phase时无法1个clock cycle完成
AHB基本传输过程 Transfer在data phase时无法1个clock cycle完成
40
AHB总线流水线操作
41
HTRANS[1:0] Transfer Type
五类Control signal HTRANS[1:0] Transfer Type IDLE BUSY NONSEQ(Non-sequential) SEQ (Sequential) HBURST[2:0] Burst Type HPROT[3:0] Protection Control HSIZE[2:0] Transfer Size HWRITE Transfer Direction
42
transfer type example
43
APB总线 APB从单元的接口信号 在APB里面唯一的主模块就是与AHB总线相接的APB 桥。 APB主要 用于低带 宽的周边 外设之间
的连接 APB从单元的接口信号 在APB里面唯一的主模块就是与AHB总线相接的APB 桥。
44
APB传输 APB上的状态图
45
APB写传输时序图
46
APB读传输时序图
47
APB桥 APB桥是在 AMBA APB 上唯一的总 选 线主模块。 择 另外,APB 信 桥也是在更 号 高层次系统 总线上的一
个从模块。 桥单元把系 统总线传输 转化为APB 总线传输。 选 择 信 号 系统总线 从模块接口
48
APB桥的传输过程
49
APB桥的功能 锁存地址并在整个传输过程中保持其有效,直到数据传送完成。 地址译码并且生成一个外部选择信号PSELx,在一次传输期间只有一个选择信号有效. 写传送时驱动数据到APB总线上。 读传时驱动APB数据到系统总线上。 为传送触发使能信号PENABLE,使其有效。
50
ARM IP中AHB和APB
51
8.3 ARM参考外围规范 AMBA提供了在同一芯片上连接硬件元件的系统方法 这些部件又如何支持基本的操作系统功能?
ARM Reference Peripheral Specification: 定义了一个基本部件集,提供了一个操作系统运行的基本框架 便于在符合实现之间移植软件,提高新系统软件开发的起步层次
52
这些部件通过AMBA总线和不同ARM核结合,可以设计出多样的ARM微处理器
基本部件 参考外围规范定义了下列部件: 存储器映射 中断控制器 计数定时器 复位控制器 这些部件通过AMBA总线和不同ARM核结合,可以设计出多样的ARM微处理器 任何包含这个基本部件集的ARM系统都可以支持一个适当配置的操作系统内核。其后的系统设计可以进一步加入专用外围接口以及支持软件
54
8.4 建立硬件系统原型的工具 软件工具仿真验证? 1.集成后如何知道是正确的? 1.减少芯片级设计工作量
2.是否可以达到专用系统实时性等方面的性能指标 ? 3.软件设计什么时候可以开始? 1.减少芯片级设计工作量 2.提高软件支持度(the same IP core = the same Operation System Core 在SoC的设计中: IP复用 AMBA总线互连
55
VLSI公司的快速硅原型(rapid silicon prototyping) 目标系统建模分两个步骤:
ARM Integrator VLSI公司的快速硅原型(rapid silicon prototyping) 目标系统建模分两个步骤: 对选择的参考芯片进行重构,使那些目标系统不需要的片上模块无效 目标系统需要但参考芯片又没有的模块由片外扩展来实现 ASIC FPGA
56
快速硅原型理论
57
ARM RealView Family Logic Tile开发板
ARM RealView Family Logic Tile 板载 Xilinx 公司的大规模 FPGA ,可以和其他 ARM Versatile 系列、 Integrator 系列开发板配合使用,用于验证 SoC 设计者的专有 IP 的设计。Logic Tile 可以直接叠加到 开发板自带的 ARM926EJ-S核上使用。Logic Tile 也可以通过 IM-LT1 接口板与 Integrator/CP ( Integrator Compact platform )系列产品配合使用。
58
ARM Integrator和ARMulator的区别
8.5 ARM仿真器ARMulator 通常由四部分组成: 处理器核模型 存储器接口 处理器接口 操作系统接口 ARM Integrator和ARMulator的区别 时序的精确度 软件模型 硬件模型 软硬件的协调设计
59
RealView Integrator-CP平台 Versatile PB/AB平台 Emulation Baseboard(EB)
实际上ARM公司提供有多种开发平台 ARMulator仿真平台 最基础的ARM指令集仿真器,可以模拟执行开发人员编写的C或汇编程序,支持源代码调试,帮助开发者确定代码编写的正确性。另一方面,ARMulator还能大致统计出,诸如:代码执行周期数,Cache命中率,存储器访问等利于我们优化代码的信息。但ARMulator是基于CPU的模拟,缺点在于比较难于模拟整个芯片系统的行为。 RealView Integrator-CP平台 Versatile PB/AB平台 Emulation Baseboard(EB) ESL虚拟平台 RTSM
60
8.6 JTAG边界扫描测试结构
61
JTAG IEEE1149
62
什么是JTAG? JTAG是Joint Test Action Group的缩写是IEEE1149.1标准 JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试 在ARM处理器中,可以通过JTAG直接控制ARM的内部总线,IO口等信息,从而达到调试的目的
63
测试信号 TMS: 测试模式选择(Test Mode Select),通过TMS信号控制JTAG状态机的状态 TCK :JTAG的时钟信号
TDI:数据输入信号 TDO :数据输出信号 nTRST:JTAG复位信号,复位JTAG的状态机和内部的宏单元(Macrocell) 事实上,通过TAP接口,对数据寄存器(DR)进行访问的一般过程是: 通过指令寄存器(IR),选定一个需要访问的数据寄存器; 把选定的数据寄存器连接到TDI和TDO之间; 由TCK驱动,通过TDI,把需要的数据输入到选定的数据寄存器当中去;同时把选定的数据寄存器中的数据通过TDO读出来。
64
对多内核/多处理器的调试
65
TAP控制器 Test-Logic Reset Run-Test/Idle Select-DR-Scan Capture-DR
系统上电后,TAP Controller自动进入该状态。在该状态下,测试部分的逻辑电路全部被 禁用,以保证芯片核心逻辑电路的正常工作。通过TRST信号也可以对测试逻辑电路进行复位,使得TAP Controller进入Test-Logic Reset状态。前面我们说过TRST是可选的一个信号接口,这是因为在TMS上连续加5个TCK脉冲宽度的“1”信号也可以对测试逻辑电路进行复位,使得TAP Controller进入Test-Logic Reset状态。所以,在不提供TRST信号的情况下,也不会产生影响。在该状态下,如果TMS一直保持为“1”,TAP Controller将保持在Test-Logic Reset状态下;如果TMS由“1”变为“0”(在TCK的上升沿触发),将使TAP Controller进入Run-Test/Idle状态。 Run-Test/Idle 这个是TAP Controller在不同操作间的一个中间状态。这个状态下的动作取决于当前指令寄存器中的指令。有些指令会在该状态下执行一定的操作,而有些指令在该状态下不需要执行任何操作。在该状态下,如果TMS一直保持为“0”,TAP Controller将一直保持在Run-Test/Idle状态下;如果TMS由“0”变为“1”(在TCK的上升沿触发),将使TAP Controller进入Select-DR-Scan状态。 Select-DR-Scan 这是一个临时的中间状态。如果TMS为“0” (在TCK的上升沿触发),TAP Controller进入Capture-DR状态,后续的系列动作都将以数据寄存器作为操作对象;如果TMS为“1” (在TCK的上升沿触发),TAP Controller进入Select-IR-Scan状态。 Capture-DR 当TAP Controller在这个状态中,在TCK的上升沿,芯片输出管脚上的信号将被“捕获”到与之对应的数据寄存器的各个单元中去。如果TMS为“0” (在TCK的上升沿触发),TAP Controller进入Shift-DR状态;如果TMS为“1” (在TCK的上升沿触发),TAP Controller进入Exit1-DR状态。 Shift-DR 在这个状态中,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的数据寄存器将从TDI接收一位数据,同时通过TDO输出一位数据。如果TMS为“0” (在TCK的上升沿触发),TAP Controller保持在Shift-DR状态; 如果TMS为“1” (在TCK的上升沿触发),TAP Controller进入到Exit1-DR状态。假设当前的数据寄存器的长度为4。如果TMS保持为0,那在4个TCK时钟周期后,该数据寄存器中原来的4位数据(一般是在Capture-DR状态中捕获的数据)将从TDO输出来;同时该数据寄存器中的每个寄存器单元中将分别获得从TDI输入的4位新数据。 Update-DR 在Update-DR状态下,由TCK上升沿驱动,数据寄存器当中的数据将被加载到相应的芯片管脚上去,用以驱动芯片。在该状态下,如果TMS为“0”,TAP Controller将回到Run-Test/Idle状态;如果TMS为“1”,TAP Controller将进入Select-DR-Scan状态。 Select-IR-Scan 这是一个临时的中间状态。如果TMS为“0” (在TCK的上升沿触发),TAP Controller进入Capture-IR状态,后续的系列动作都将以指令寄存器作为操作对象;如果TMS为“1” (在TCK的上升沿触发),TAP Controller进入Test-Logic Reset状态。 Capture-IR 当TAP Controller在这个状态中,在TCK的上升沿,一个特定的逻辑序列将被装载到指令寄存器中去。如果TMS为“0” (在TCK的上升沿触发),TAP Controller进入Shift-IR状态;如果TMS为“1” (在TCK的上升沿触发),TAP Controller进入Exit1-IR状态。 Shift-IR 在这个状态中,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的指令寄存器将从TDI接收一位数据,同时通过TDO输出一位数据。如果TMS为“0” (在TCK的上升沿触发),TAP Controller保持在Shift-IR状态; 如果TMS为“1” (在TCK的上升沿触发),TAP Controller进入到Exit1-IR状态。假设指令寄存器的长度为4。如果TMS保持为0,那在4个TCK时钟周期后,指令寄存器中原来的4bit长的特定逻辑序列(在Capture-IR状态中捕获的特定逻辑序列)将从TDO输出来,该特定的逻辑序列可以用来判断操作是否正确;同时指令寄存器将获得从TDI输入的一个4bit长的新指令。 Update-IR 在这个状态中,在Shift-IR状态下输入的新指令将被用来更新指令寄存器。 Test Access Port (TAP) controller state transition diagram
66
测试芯片及其当前选定的边界扫描链
67
边界扫描链的访问过程(1)
68
边界扫描链的访问过程(2)
69
边界扫描链的访问过程(3)
70
边界扫描链的访问过程(4)
71
边界扫描链的访问过程(5)
72
边界扫描链的访问过程(6)
73
数据寄存器 指令寄存器 公共指令 JTAG 器件标识寄存器 旁路寄存器 边界扫描寄存器 其他寄存器用于其他功能的测试
BYPASS EXTEST IDCODE INTEST
74
PCB测试 VLSI测试 EmbeddedICE 宏单元测试
A possible JTAG extension for macrocell testing
75
8.7 ARM调试结构 一个调试系统一般包括三个部分: 调试主机 协议转换器 调试目标 典型的调试结构
76
为了支持底层的调试,ARM处理器提供了硬件上的扩展,这些调试扩展包括:
停止程序的运行 检查和修改ARM的内核状态 观察和修改内存 恢复程序的运行
77
8.8 嵌入式跟踪 实时调试系统的组织
78
实时调试方案通过三种途径解决: EmbeddedICE硬逻辑 实时监控 实时跟踪
79
8.9 对信号处理的支持 ARM+DSP Piccolo ARM v5TE
80
Piccolo的组织
81
v5TE信号处理指令
83
ARM v5TE PSR format
84
Architecture v5TE multiply instruction binary encoding
85
Architecture v5TE add/subtract instruction binary encoding
Similar presentations