AMBA 版本 2.0 (AHB/ASB 和 APB).

Slides:



Advertisements
Similar presentations
1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
Advertisements

天水圍的體育設施.
什么是SOPC: SOPC是英文System On a Programmable Chip的缩写,称为片上可编程系统。SOPC将传统的EDA技术、计算机系统、嵌入式系统、数字信号处理等融为一体,综合了各自的优势,且在结构上形成一块芯片。 为什么用SOPC:SOPC是现代电子技术和电子系统设计的发展趋势,建立了电子系统设计的新模式。用户利用SOPC开发平台,自行设计高速、高性能的DSP处理器、特定功能的CPU及其外围接口电路,创建结构最为简洁的电子系统。
第二章 微型计算机系统 第一节 基本术语和基本概念 第二节 计算机系统的基本构成 第三节 微机系统的硬件组成 第四节 微机系统的软件组成.
TMS320F2812串行外设接口 Serial Peripheral Interface (SPI)
实验四 利用中规模芯片设计时序电路(二).
操作系统结构.
最新計算機概論 第3章 計算機組織.
-Artificial Neural Network- Hopfield Neural Network(HNN) 朝陽科技大學 資訊管理系 李麗華 教授.
Android RISC Team Wendy Wang July,2017
Leftmost Longest Regular Expression Matching in Reconfigurable Logic
IV. Implementation IV-A Method 1: Direct Implementation 以 STFT 為例
Thinking of Instrumentation Survivability Under Severe Accident
CH.2 Introduction to Microprocessor-Based Control
第四章 BootLoader开发 附-s3c2410/s3c2440处理器介绍
Chapter 5 電腦元件 目標---- 研讀完本章後,你應該可以: 閱讀有關電腦的廣告以及了解它的專業用語(行話)。
ARM 架构.
電腦硬體基本介紹 國立高雄大學資訊工程學系 林士倫 2010/10/21.
第三章 VVVF控制与PWM方法 3.1 VVVF变频调速原理 3.2 PWM逆变器的模型 3.3 规则采样的SPWM方法
项目成果展示 ——深圳凯吉尔科技—— 凯吉尔全线代理无锡研奥产品 说明:
網路技術管理進階班---區域網路的技術發展
ARM存储器结构 ARM架构的处理器的存储器寻址空间有4G字节 ,存储空间可以分为 :
PIC16F1827介紹 以微控器為基礎之電路設計實務-微處理器實驗室.
FIFO 与 UPP 本节我们结合UPP接口给大家介绍一下FIFO在实际工程中的使用。 广州创龙电子科技有限公司 广州创龙电子科技有限公司
第4章 处理器(CPU) 4.1 引言 4.2 逻辑设计的一般方法 4.3 建立数据通路 4.4 一个简单的实现机制 4.5 多周期实现机制.
Chapter 5 Verilog 硬體描述語言
SOC 期中報告 進度報告 Adviser: Chao-Lieh Chen Student:
Chapter 5 Verilog硬體描述語言
不断变迁的闪存行业形势 Memory has changed, especially serial - from a low cost, low pin count, slow memory to an advanced, high performance memory solution to save.
第3章 ARM体系结构.
C H A P T E R 10 存储器层次.
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
memory array (2n words by m bits)
二、相關知識 在數位系統中,資料的表示方式通常是以0與1這兩種基本型態組合而成的,資料若要作處理,則必須將它轉為處理單元所能接受的型式(碼),此即所謂的編碼(encode)。可以完成此編碼工作的電路稱為編碼器(encoder)。而當處理單元將資料處理完之後,則必須將它呈現出來,此時我們需要將它更改為人們所熟悉的資料型式,此種動作我們稱之為解碼(decode)。可以完成此解碼工作的電路稱為解碼器(decoder)。
5 Computer Organization (計算機組織).
The Processor: Datapath and Control
C H A P T E R 8 体系结构对系统开发的支持.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
Block diagram BB —逻辑 —音频 —电源管理 HW interface. Block diagram BB —逻辑 —音频 —电源管理 HW interface.
memory array (2n words by m bits)
The CAN bus 李强.
微程序控制器 刘鹏 Dept. ISEE Zhejiang University
创建型设计模式.
Ch 9: Input/Output System 输入/输出系统
Danny Mok Altera HK FAE AHDL培训教材 Danny Mok Altera HK FAE 2018/12/9 P.1.
第14章 其它DSP设计库 14.1 总线控制库 14.2 复数信号库 14.3 Gates库 14.4 状态机函数库
KeyStone I DSP[C665x 与 C6678] 视频教程
第二章 電腦硬體知識 2-1 電腦的組成與架構 2-2 處理器 2-3 記憶體 2-4 輸入與輸出裝置 2-5 電腦的操作與保養.
JTAG INTERFACE SRAM TESTER WITH C-LCM
陳慶瀚 機器智慧與自動化技術(MIAT)實驗室 國立中央大學資工系 2013年5月28日
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
CPU结构和功能.
PubMed整合显示图书馆电子资源 医科院图书馆电子资源培训讲座.
Chapter /8088 Hardware Specifications
成品检查报告 Inspection Report
第一次上机安排 第六周 第七周 周一晚(提高1、2,通信001~012) 周二上(通信014~085) 周四上(通信086~154)
(第2版).
ARM 架构.
ARM 架构.
第2章ARM/THUMB微处理器结构及指令系统
虚 拟 仪 器 virtual instrument
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
第10章 存储器接口 罗文坚 中国科大 计算机学院
iSIGHT 基本培训 使用 Excel的栅栏问题
DMA
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Introduction to Computer Security and Cryptography
DSP技术与应用 电子与信息技术系.
Chapter 8 – Memory Basics
Presentation transcript:

AMBA 版本 2.0 (AHB/ASB 和 APB)

AMBA系统的例子 High Performance ARM processor APB UART High Bandwidth External Memory Interface Timer APB Bridge AHB Keypad High-bandwidth on-chip RAM DMA Bus Master PIO Low Power Non-pipelined Simple Interface High Performance Pipelined Burst Support Multiple Bus Masters

内容 AHB 主控,仲裁,译码,从控 ASB 基本周期,译码周期 APB 主控,从控 测试 结构,进入,地址,读,写,退出 测试 结构,进入,地址,读,写,退出 将来 多层 AHB, AHB 简化版

AHB 互连 Arbiter Slave #1 Master #1 Slave #2 Master #2 Slave #3 Master HADDR HADDR HWDATA Slave #1 Master #1 HWDATA HRDATA HRDATA Address/Control Slave #2 Master #2 Write Data Slave #3 Read Data Master #3 Slave #4 Decoder

AHB 基本信号 HCLK 所有AHB动作的参考 HADDR 32 位地址总线 HWRITE 读/写周期 HREADY 传输完成响应 HWDATA 写数据总线 HRDATA 读数据总线

AHB 基本信号时序 HCLK HADDR HWRITE HRDATA HWDATA Address Phase Data Phase A

AHB 基本信号时序 HCLK HADDR HWRITE HWDATA HREADY HRDATA A Address Phase Data Phase HCLK HADDR HWRITE HRDATA HWDATA HREADY

} } } AHB 总线主控 Bus Master HCLK HBUSREQx HGRANTx HLOCKx HBURST[2:0] HRESETn Arbiter HADDR[31:0] HWRITE HREADY HWDATA HRDATA } HBURST[2:0] HTRANS[1:0] HSIZE[2:0] HPROT[3:0] Control } HRESP[1:0] Transfer Responses

AHB 仲裁 Bus Arbiter Split support HCLK HRESETn HBUSREQa HGRANTa HLOCKa HGRANTb HGRANTc HBUSREQb HGRANTd HLOCKb HBUSREQc HMASTER[3:0] HLOCKc HMASTLOCK HBUSREQd HLOCKd HREADY HBURST[2:0] HADDR[31:0] HTRANS[1:0] HRESP[1:0] HSPLIT[15:0] Split support

AHB 仲裁信号 HBUSREQx 来自总线的请求 HGRANTx 对总线主控的响应 HLOCKx 主控锁定传送 HMASTER[3:0] 地址/控制多路复用器开关 HMASTLOCK 当前主控正在执行锁定的访问 HBURST[2:0] 猝发长度指示 (延缓仲裁) HTRANS[1:0] 要执行的下一个周期类型 HRESP[1:0] 从控响应 HSPLIT[15:0] 从控可以完成Split处理

AHB 仲裁器时序 HCLK #A A A+4 HBUSREQx HGRANTx HMASTER HADDR HWDATA

HTRANS HTRANS Type Description 00 IDLE 总线主控占用总线,但不想执行传送。 01 BUSY 占用总线的主控处于猝发中, 不能立即继续下一个传送。 10 NON-SEQ 猝发的第一个传送或一个单独的传送 11 SEQ 接下来的猝发传送地址与前面的传送是等步长连续

HBURST HBURST Type Example 000 SINGLE 0x48 001 INCR 0x48, 0x4C, 0x50 010 WRAP4 0x48, 0x4C, 0x40, 0x44 011 INCR4 0x40, 0x44, 0x48, 0x4C 100 WRAP8 0x48, 0x4C, .., 0x5C, 0x40, 0x44 101 INCR8 0x40, 0x44, 0x48, ……., 0x5C 110 WRAP16 0x48, 0x4C, ……, 0x7C, 0x40, 0x44 111 INCR16 0x40, 0x44, 0x48, …………, 0x7C

AHB 译码器 HSELx : Combinatorial address decode slave select lines HCLK Bus Decoder HSELa HSELb HSELc HSELd HADDR[31:10] HSELx : Combinatorial address decode slave select lines HCLK HADDR[31:10] ADDRa ADDRb HSELa HSELb

AHB 从控 Bus Slave Split-capable slave HCLK HRESETn HSELx HADDR HWRITE HTRANS HSIZE HBURST HWDATA HRDATA HRESP HREADY HREADYout Split-capable slave HMASTER HSPLITx HMASTLOCK

AHB 从控时序 HCLK A OKAY HADDR HSELa HREADY HRESP

HREADY 输入/输出 HREADY - input - previous access completing? HREADYout - output - waits states required? Response Mux HREADYout Slave#1 HREADYout Slave#2 HREADY HREADYout Slave#3 to all masters HREADYout Slave#4 back to all slaves Decoder Selects

默认从控 Default Slave Decoder logic case HADDR is when …. => 0xFFFF_FFFF Default Slave Decoder logic case HADDR is when …. => HSELebi <= ‘1’; HSELsram <= ‘1’; HSELapb <= ‘1’; when others => HSELdefault <= ‘1’; end case; Slave 3 (APB) 0xCFFF_FFFF 0xC000_0000 0x5000_FFFF 0x5000_0000 0x3FFF_FFFF 0x0000_0000 Slave 2 (APB) Default_Slave logic case HTRANS is when IDLE|BUSY => HRESP <= OKAY; when others => HRESP <= ERROR; end case; Slave 1 (APB) 0x0000_0000

其它的从控响应 HRESP 00 OKAY 01 ERROR 10 RETRY 11 SPLIT 需要两个周期的响应时间,允许主控从地址流水线时序恢复

2 周期响应 HRESP 事件 总线主控操作 ERROR 发生退出 修正退出并重试失败的访问 RETRY 从控不能立即执行操作 重试访问 SPLIT 从控可以离线处理操作 重试访问

RETRY 响应 HCLK HTRANS HADDR HREADY HRESP A RETRY OKAY NONSEQ SEQ IDLE undef HTRANS HADDR HREADY HRESP

SPLIT 传送 AHB 从控 AHB 仲裁器 HSPLIT[15:0] : SPLIT总线主控的映射 储存来自总线主控的请求 离线处理请求 当访问可以完成的时候,从控通知仲裁器

空转/默认 主控 空转主控 当所有的总线主控都处于SPLIT状态时,成为主控。 只产生IDLE总线周期 典型地,#0 主控 作为地址/控制多路复用器的一部分实现。 默认主控 当没有主控要求总线的时候成为主控。 一般地,主控最适合要求总线 当没有总线申请的时候产生 IDLE 周期 避免最少两个周期的仲裁时间 立即访问总线

锁定的传送 HCLK HGRANTb HBUSREQb HADDR HLOCKa HMASTLOCK HMASTER 1st Locked addr 2nd Locked addr IDLE address A B Master A Master B HGRANTb HBUSREQb HADDR HLOCKa HMASTLOCK HMASTER

猝发提前结束 两个可选的情况: - 仲裁器得到严格的优先级请求 - 主控收到OKAY 回应 仲裁器 - 在猝发中,可以忽略HBURST信息,同意较高优先级的主控占用总线 主控 - 必须在猝发的每一个周期检查HGRANT - 当重新同意占用总线来完成剩余的猝发周期时,必须改变 HBURST (最简单的是使用 INCR 类型) 主控 - 可以选择立即处理 ERROR,还是在猝发结束的时候处理。 - 当有SPLIT或RETRY时,必须重试访问。 - 当重新获得总线的时候,必须改变HBURST来完成余下的猝发操作。(最简单的是使用INCR类型) 仲裁器 - 必须监视HTRANS来检测猝发结束 (NSEQ 或 IDLE) 猝发从控 - 必须监视HTRANS来检测猝发的结束。

内容 AHB 主控,仲裁器,译码器,从控 ASB 基本周期,译码周期 APB 主控,从控 测试 结构,进入,地址,读,写,退出 测试 结构,进入,地址,读,写,退出 将来 多层 AHB,AHB简化版

ASB 信号一览 BCLK BnRES BTRAN[1:0] BA[31:0] BWAIT BD[31:0] BERROR BLAST BWRITE BSIZE[1:0] BPROT[1:0] BLOK BnRES BWAIT BERROR BLAST DSELx AREQx AGNTx

基本的总线周期 BCLK BTRAN[1:0] BA[31:0] DSELx BD[31:0] Transfer Type Slave Data Slave Address BA[31:0] DSELx BD[31:0]

扩展的传送 BCLK BTRAN[1:0] BA[31:0] BWAIT DSELx BD[31:0] Transfer Type Data Slave Address BTRAN[1:0] BA[31:0] DSELx BWAIT BD[31:0]

译码周期 BCLK BTRAN[1:0] BA[31:0] DSELx BWAIT BD[31:0] N_SEQ Slave Address Data Slave Address BTRAN[1:0] BA[31:0] DSELx BWAIT BD[31:0]

总线转变 ASB共享一条三态总线,所以,在改变总线驱动需要时间。 在改变期间,总线保持者要防止在总线信号上出现无效数据。 提供完整的转变相位。 从控处理响应信号 (BWAIT, BLAST 和 BERROR) 只在BCLK为低的相位驱动,以便总线在BCLK为高的相位的阶段转变。 在非连续传送的BCLK低相位阶段,数据是不驱动的。

AHB 与 ASB 比较 AHB 在以下方面超过 ASB 单时钟沿操作。 非三态实现 单周期总线主控移交 猝发传送 Split 处理 比较宽的数据总线配置

内容 AHB 主控,仲裁器,译码器,从控 ASB 基本周期,译码周期 APB 主控,从控 测试 结构,进入,地址,读,写,推出 测试 结构,进入,地址,读,写,推出 将来 多层 AHB, AHB简化版

APB 信号列表 PCLK - 设备时钟 PADDR[..] - 设备地址总线 PWRITE - 设备读/写信号 PSELx - 单独的从选择信号 PWDATA[..] - 设备写数据总线 PRDATA[..] - 设备读数据总线 PENABLE - 设备数据使能

地址译码阶段 AHB memory map APB memory map Timers memory map AHB Decoder APB Bridge Timers 0xCFFF_FFFF 0xC000_0000 0x5000_FFFF 0x5000_0000 0x3FFF_FFFF 0x0000_0000 Slave 3 (APB) 0xC3FF_FFFF 0xC300_0000 0xC2FF_FFFF 0xC100_0000 0xC000_FFFF 0xC000_0000 Peripheral 3 (UART) Timer 2 0xC2FF_FFFF 0xC200_0000 0xC1FF_FFFF 0xC100_0000 HSELapb Peripheral 2 (Timers) Timer 1 PSELtim Slave 2 (SRAM) Peripheral 1 (Int Cont) Slave 1 (EBI)

APB 互连 AHB Peripheral APB #1 Master AHB2APB Bridge #2 #3 PCLK HCLK PADDR HCLK PSEL#1 PWRITE PSEL#2 PSEL#3 PCLK HADDR HWRITE Peripheral #1 #3 #2 PENABLE PWDATA PRDATA HRDATA HSEL HWDATA AHB

APB 写周期 PCLK PADDR PWRITE PSEL PENABLE PWDATA Addr1 Data1

APB 读周期 PCLK PADDR PWRITE PSEL PENABLE PRDATA Addr Data

Slow APB Peripheral Designs APB 访问必须花费两个 PCLK 周期 在APB上没有 WAIT 信号 什么样的设备需要长的访问时间 ? UART ? 仅须在中断发生的时候,或在轮询UART状态寄存器之后。 慢速的存储器 ? 全功能的存储器接口要求在APB上不支持的传送大小信息。 标准的解决方案是将慢速设备当作一个AHB部件来实现 (或者通过一个AHB/AHB桥放在一个单独的AHB上)

APB 到 AHB HCLK/PCLK HADDR HWRITE HRDATA HREADY PADDR PWRITE PSEL PRDATA

内容 AHB 主控,仲裁器,译码器,从控 ASB 基本周期,译码周期 APB 主控,从控 测试 结构,进入,地址,读,写,退出 测试 结构,进入,地址,读,写,退出 将来 多层 AHB, AHB简化版

AMBA 测试配线 Application Peripheral Bus Interface Test Stimulus Results Dedicated Inputs Outputs AHB/ASB/APB

AMBA 测试接口 Test Interface Controller (TIC) External Bus Interface (EBI) TCLK Control TREQA HADDR TREQB HWDATA TACK External Bus Interface (EBI) TBUS[31:0] HRDATA ASIC

测试开始序列 TCLK Address TREQA TREQB TACK TBUS HBUSREQtic HGRANTtic

TREQA/TREQB 在正常工作期间 在测试模式期间 TREQA TREQB TACK 描述 0 0 0 正常工作 0 0 0 正常工作 1 0 0 进入测试模式请求 - - 1 测试模式已进入 在测试模式期间 - - 0 当前访问没有完成 1 1 1 地址,控制或转变向量 1 0 1 写向量 0 1 1 读向量 0 0 1 退出测试模式

地址向量 HCLK TREQA TREQB TACK TBUS HTRANS HADDR HWRITE Control HWDATA 1 2 3 4 5 HCLK TREQA TREQB TACK TBUS HTRANS HADDR HWRITE Control HWDATA Address Control Write1 Write2 IDLE IDLE Non-Seq Seq Address Address + 4 Write1

控制向量 位 位置 默认 描述 0 0 控制向量有效 1 0 保留 2 0 HSIZE(0) 3 1 HSIZE(1) 4 0 HLOCK 位 位置 默认 描述 0 0 控制向量有效 1 0 保留 2 0 HSIZE(0) 3 1 HSIZE(1) 4 0 HLOCK 5 1 HPROT(0) 6 1 HPROT(1) 7 0 地址增加使能 8 0 保留 9 0 HPROT(2) 10 0 HPROT(3) 11 0 HSIZE(2) The control vector allows the user to change the default state of the test bus master. Normally all that can be changed using address, read and write vectors are HADDR, HTRANS and HWRITE. The control vector then allows you to alter any of the other standard bus master outputs. Bits 7 to 0 are the same for an ASB based system, so vectors written for ASB will work with AHB as well. However if you wish to use the extra features of AHB then the control vector has been extended to 12 bit long. Bits 8 and 1 should be set to zero. (note that bit 8 forces ASB based systems to not perform Non-Seq cycles. These cause some decoders to add decode cycles, and this can confuse the arm core test state machine when DSEL is momentarilly de-asserted)

写向量 HCLK TREQA TREQB TACK TBUS HTRANS HADDR HWRITE HREADY HWDATA Non-Seq Address Write#2 IDLE Seq Address+4 1 2 3 4 5

读向量 HCLK TREQA TREQB TBUS HTRANS HADDR HWRITE HRDATA 1 2 3 4 5 Address 1 2 3 4 5 HCLK TREQA TREQB TBUS HTRANS HADDR HWRITE HRDATA Address Read #1 Read #2 IDLE Non-Seq Seq IDLE Address Address+4 Read #1 Read #2

测试结束 HCLK TREQA TREQB TACK TBUS HTRANS HBUSREQ HGRANT 1 2 3 4 5 IDLE Address 1 2 3 4 5

内容 AHB 主控,仲裁器,,译码器,从控 ASB 基本周期,译码周期 APB 主控,从控 测试 结构,进入,地址,读,写,退出 测试 结构,进入,地址,读,写,退出 将来 多层 AHB, AHB 简化版

传统的多主控设计 ARM DMA Slave #1 Slave #2 Slave #3 Slave #4

并行总线 ARM DMA AHB2AHB Slave #1 Slave #2 Slave #3 Slave #4

共享的从控 ARM DMA Slave #1 Slave #2 Slave Mux Slave #4 Slave #3

多层 ARM Slave #1 DMA #2 #3 #4 Mux

多层解决方案 Master 1 Slave 1 Slave 2 Slave 3 Master 2 Layer 1 Layer 2

典型的多层的例子 ARM DMA On-chip RAM Slave Mux Slave Mux DMA Slave AHB2APB External Memory I/F UART Timer GPIO

多层的优势 并行访问提高了系统带宽 不是新标准 已有标准的互连实现 主控和从控象AHB一样,能够重复使用

AHB简化版 AHB的功能子集 主控 (没有仲裁或 Split/Retry响应) 从控 (不容许Split 或 Retry响应)

设计考虑 对于不同的从控来说,带宽的绝大部分是在每一层上吗? 分离的片上存储器要并行访问 不同的层可以有不同的总线宽度 可以将瓶颈由总线移到单独的从控。 分离的片上存储器要并行访问 不同的层可以有不同的总线宽度 增加带宽的简单的方法 每一层可以是单个的或多个的主控 每层一个主控可以用AHB简化版来实现