阶段总结
阶段性总结
基础概念:主要介绍一些PCI/PCIe的基础概念。便于入门者学习了解。
阶段性总结
既然有了前面我们讲的基于三种资源(ID、Memory、IO)的两种路由方式ID路由和地址路由,为什么还要有个隐式路由(Implicit Routing,也叫模糊路由)呢?
回顾一下,PCIe的设备有三种资源(ID、Memory、IO),前一篇讲了ID路由,本文我们讨论地址路由(Address Routing),即按照后两种资源(Memory和IO)的地址进行路由。
路由是指一个数据包(也叫报文)从源端经过各种路径,最终到达目的端的过程。这必然要求知道整条路径怎么走,那么,PCIe上的寻路方法有哪些呢?
ID、IO、Memory三种基本资源是PCIe设备的工作基础。在系统启动时,BIOS会给各个PCIe设备分配如上三种资源,这个过程就是我们常说的枚举(Enumeration)。
在一个系统中,除了CPU,还有大量的外部设备,这些设备通过各种总线连接,包括我们主要讲的PCIe。而每个外设都是通过读写其寄存器来控制使用,寄存器也称为I/O端口。
ID资源是一个PCIe设备的最基本资源,每一个ID号都是独一无二的。分析ID资源前,我们需要先了解Function(功能)的概念。对于一个PCIe设备,如果它只具有一个功能,我们称之为Single FunctionDevice;如果它有多个功能,则称之为Multi Function Device。
前面讲了树,理清了PCIe架构的大概框架;讲了链路,知道了框架中的路径。而对于树上的树叶/果实,即最终的PCIe设备,它们在系统中是是怎样存在的?
上上篇讲了8/10b编码,有朋友问我能否再稍微介绍一下编码的过程。这里把关键流程罗列一下。
事实上,关于带宽计算,看起来很简单,实际上很容易弄错,即使算对了其中的几个基本概念还是容易搞混淆。这里特别梳理一下