(转)从PC的总线到ARM内部总线

简介: 我在学习《Linux设备驱动程序(第3版)》的 第九章 与硬件通信 时,对 I\O总线的概念 不是很清晰,所以查找了有关资料。现在总结如下:本文的参考资料:1、 《AMBA、AHB、APB总线简介》 作者 adamzhao 日期 2006-11-16 19:33:00转载网址:http://www.
我在学习《Linux设备驱动程序(第3版)》的 第九章 与硬件通信 时,对 I\O总线的概念 不是很清晰,所以查找了有关资料。现在总结如下
本文的参考资料:
1、 《AMBA、AHB、APB总线简介》 作者 adamzhao 日期 2006-11-16 19:33:00
转载网址: http://www.openhard.org/myspace/blog/show.php?id=75802
2、 《Introduction to AMBA Bus System 》台湾 工研院 / 系統晶片技術中心工程師 吳欣龍,PDF格式
下载地址: http://tpe-wh3.dwins.net/download/member_file/2002/soc/2002-5-1.pdf
3、 《PC架构系列:CPU/RAM/IO总线的发展历史!》
转载网址: http://blog.csdn.net/xport/archive/2006/11/16/1387928.aspx
4、 《认识物理I/O构件- 主机I/O总线(1)》作者:IT168存储频道  2007-04-10
总线的演变
首先应该讲讲总线的演变历史,这方面《PC架构系列:CPU/RAM/IO总线的发展历史!》这篇文章写得很好!感谢文章的作者!以下内容大量来自这篇文章,可以说是这篇文章的缩减转载。
 

公共总线

早期PC中,CPU/RAM/IO都是挂在一条总线上,所有的部件都必须在同步的模式下工作。这样就带来一个"互锁" (locked to each other )效应:所有设备都被限定在一个通用时钟频率(Clock Frequency)上面,整个系统的速度会被系统中最慢的设备限制,系统的整体性能无法提高。

南桥诞生(I\O总线诞生

1987年,康柏(Compaq)公司想到一个办法: 将系统总线与I/O总线分开,使得2个不同的总线工作在不同的时钟频率上。CPU和内存工作在系统总线上(the System Bus),独立于所有的I/O设备。这样高速的CPU/RAM组件就摆脱了低速I/O设备的束缚。



这里的Bridge,就是现在的南桥(South Bridge)芯片的前身,而它实际起到了降频的作用。


倍频出世

从80486开始,CPU的发展迅猛,频率大幅攀升。内存开始变得跟不上CPU的发展步伐了。Intel 于是决定在80486中引入倍频(Clock Doubler)的概念。内存依旧工作在系统总线上,与系统总线保持同样的工作频率,而CPU的内部工作频率(CPU主频)是:

CPU 主频 = 外频(系统总线频率System Bus Frequency)* 倍频 (Clock doubler)

北桥和前端总线的诞生

PC结构的变化趋势是把低速设备高速设备用隔离总线的方法进行隔离。而发展到后来,就演变出了北桥(North Bridge)芯片。内存与北桥间的总线称为内存总线,把CPU与北桥间连接的这段总线成为前端总线(Front Side Bus,FSB),也就是系统总线System Bus)!

PC中的I\O总线
通过上面的文章,我们知道的总线的演变过程。现在专门来讲讲I\O总线。

总线:用来传送信号或能量的构造器。

系统 I/O 总线将指令从内存传导至与输入\输出处理器(IOP)相连的设备。系统 I/O 总线还会将指令从 IOP 传导回内存。

以下的内容来自《认识物理I/O构件- 主机I/O总线(1)》 ,这篇文章写得很好。感谢文章作者!

在数据离开系统内存总线后,它通常传输到另一条总线:主机I / O总线。现在最常见的主机I / O总线是P C I总线,另外还有如PCI-E总线、ISA总线,E I S A总线及V M E总线等等。主机I / O总线实现了几种重要的功能,包括:

允许加入新的插卡。
允许从内存总线输入和输出数据。
允许在插卡之间传输数据
主机I / O总线并不是处于设备与系统内存总线间的仅有的中介物,在主机I / O总线和系统内存总线之间还存在着桥控制器芯片(南桥),该芯片负责在两总线之间交换数据。主机I / O总线是在内存和外设之间传送数据的运输工具。

ARM处理器的内部总线

认真研究ARM9(以s3c2410为例)的结构框图,你会发现:作为高性能的嵌入式CPU,ARM9可以看成一个高度浓缩的计算机系统,类似于分化出南桥芯片且有倍频的计算机构架!具体见下图:

 

看了这些,应该可以对计算机的总线有了一些认识,更重要的是对ARM9的体系构架有了更好地认识!这里值得注意的是:ARM 的内存芯片并没有直接接在“内存总线”上,而是通过内存控制器间接地和“内存总线”连接。
 
如果你有兴趣更深入地研究ARM的总线结构,推荐你看一下我上面提到的参考资料:《AMBA、AHB、APB总线简介》、《Introduction to AMBA Bus System 》 。我就不在这废话了,因为他们讲得已经很全面,很精彩了。你如果是ARM总线的设计者,你应该看看ARM 公司的《AMBA™ Specification (Rev 2.0)文档(去ARM的官方网站注册一下就可以下载了)。
相关文章
|
存储 传感器 缓存
「Arm Arch」 总线微架构
「Arm Arch」 总线微架构
147 0
|
19天前
|
编解码 弹性计算 应用服务中间件
阿里云服务器Arm计算架构解析:Arm计算架构云服务器租用收费标准价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中Arm计算架构以其低功耗、高效率的特点受到广泛关注。本文将深入解析阿里云Arm计算架构云服务器的技术特点、适用场景以及包年包月与按量付费的收费标准与最新活动价格情况,以供选择参考。
|
23天前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
37 0
|
27天前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
|
3月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
101 3
|
2月前
ARM64架构提供的Cache操作
ARM64架构提供的Cache操作
|
3月前
|
Ubuntu Windows
ARM架构安装ubuntu系统
8月更文挑战第19天
965 0
|
6月前
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
阿里云、平头哥与Arm联合举办的飞天技术沙龙在上海举行,聚焦Arm Neoverse核心优势和倚天710计算实例在大数据、视频领域的应用。活动中,专家解读了倚天710的性能提升和成本效益,强调了CIPU云原生基础设施处理器的角色,以及如何通过软件优化实现资源池化和稳定性平衡。实例展示在视频编码和大数据处理上的性能提升分别达到80%和70%的性价比优化。沙龙吸引众多企业代表参与,促进技术交流与实践解决方案的探讨。
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨