RapidIO的启动与初始化
- 概述
RapidIO的启动与初始化主要包括以下几个方面的内容:
- 系统初始化
- 器件枚举
- 路由表配置
- 存储器映射
一旦配置好RapidIO系统,系统就会在RapidIO互连结构中透明地传递I/O事务。从软件角度观察,由于软件并不与RapidIO硬件进行交互,所以,RapidIO对软件是透明的。例如,某一地址空间被映射到RapidIO网络上的某一器件中或被配置为与该器件相关,当处理器发送一个对该地址空间的读取指令时,该指令会引发RapidIO READ事务:由端点正确地生成相关的RapidIO包,并将其发送到RapidIO网络中,响应包返回的数据被转发回处理器以完成读取操作。该过程完全由硬件控制的,软件并不关心数据是来自高速缓存还是本地存储器或远程存储设备。这一点与以太网差别巨大,在以太网中,比如包的生成等需要大量的软件干预。
RapidIO具有多种操作模式,但只有工作在存储器映射I/O总线模式下,对软件才是透明的。而使用消息传递逻辑层事务时,必须编写软件来显示地使用该事务。硬件不会自动处理该事务。软件还可用于支持流交换结构逻辑层事务。使用这一事务支持在RapidIO中传输数据流。数据流实例可能包括:以太网包、ATM信元、甚至MPEG-2之类的数字视频流。流交换结构扩展可分割数据并保证在RapidIO结构中高质量地传输数据。
对RapidIO自身的配置也能体现出RapidIO对软件的可见性。这是指RapdiIO硬件和系统软件间需要进行交互以初始化RapidIO端点,确保链路的运行并正确地收发数据包,如此才能正确配置系统中的交换机,并建立存储器映射以提供期望的器件间的系统可见性。
既然是概述,就是先了解个大概,不做深究。这段文字基本上让我们了解了“大概”。
2. RapidIO系统启动过程
- host CPU获取引导代码(如果需要),如果有两个host,则两者是都可获取初始引导代码。
- 开始执行系统探测和枚举算法。
- 枚举所有器件并将相关器件信息记录到器件数据库,建立host和所有endpoint之间的路由。
- 计算并配置host与所有endpoint器件之间,以及不同的endpoint器件之间的最优路径。
- 用最优路径信息配置switch。
- 在器件数据库中存储最优路径并以此替换器件数据库中原有的路由信息。
- 映射地址空间
疑问: