什么是總線:
ISA,PCI,PCIE,USB,I2C,sata,這么多種總線,它們除了電氣特性不同之外,就用途而言,相同么?
http://www.zhihu.com/question/29723949
除了ISA/PCI,其他在習慣上並不被稱作總線。ISA/PCI之所以被稱作總線,是因為在老的pc機結構上,他們是用來連接各種外設的,並且你能在主板上看到他們。這已經是很古老的東西了,現在基本用不到。
現在的pc機構架,包括嵌入式SoC,核心通過前端總線連接內存控制器,L3緩存,片內顯卡和各種IO模塊控制器(注意是控制器,而不是設備)。這個前端總線在芯片內部,你是看不到的。在pc機上你能看到的是連接南橋芯片的連線,南橋里面也有各種協議控制器,從而連接各種設備模塊,比如PCIE,USB,I2C,sata。而在SoC中,連南橋都不存在。協議控制器都在一個芯片內,向上通過前端總線連接核,向下出芯片直接連接各種外設。這里的PCIE,USB,I2C,sata,雖然他們也是連接外設的,但是習慣上並不稱作總線,而是稱作IO(Input & Output)。
可能有點搞,但只要記住核,前端總線,控制器,設備,就不難理清楚了。不行找個x86構架圖看看吧。
至於不同,主要是分3類,高速中速低速。我幾年前寫過一個科普,現在回過頭看看有些地方並不准精確,隨便看看吧。 計算機IO協議掃盲之一
簡而言之,在每個速度分類之內,電氣特性差別不大。分類之間差別很大。各個協議用途差別很大,各有擅長,目前並沒有融合趨勢。
驅動差別也很大,DDR只要初始化不需驅動(也可以使用dma驅動),用於連接內存。pcie類似,用於連接除高速設備,網卡,固態硬盤,顯卡等。他們都是內存映射。sata,usb.是操縱數據塊做dma,sata連硬盤和固態硬盤,usb連得就多了,有個協議叫usb class,定義了所有可連接的設備類型。I2C這類低速的連數據塊都不用,直接填地址和數據到寄存器。連接各種傳感器等低速設備,也用可於高速設備的配置,比如內存條。
高速設備需要考慮效率和性能,包括pcie/sata/usb。雖然寫法不同,但是等你看懂驅動后,他們在驅動模型和效率方面的考量,是一致的。
現在的pc機構架,包括嵌入式SoC,核心通過前端總線連接內存控制器,L3緩存,片內顯卡和各種IO模塊控制器(注意是控制器,而不是設備)。這個前端總線在芯片內部,你是看不到的。在pc機上你能看到的是連接南橋芯片的連線,南橋里面也有各種協議控制器,從而連接各種設備模塊,比如PCIE,USB,I2C,sata。而在SoC中,連南橋都不存在。協議控制器都在一個芯片內,向上通過前端總線連接核,向下出芯片直接連接各種外設。這里的PCIE,USB,I2C,sata,雖然他們也是連接外設的,但是習慣上並不稱作總線,而是稱作IO(Input & Output)。
可能有點搞,但只要記住核,前端總線,控制器,設備,就不難理清楚了。不行找個x86構架圖看看吧。
至於不同,主要是分3類,高速中速低速。我幾年前寫過一個科普,現在回過頭看看有些地方並不准精確,隨便看看吧。 計算機IO協議掃盲之一
簡而言之,在每個速度分類之內,電氣特性差別不大。分類之間差別很大。各個協議用途差別很大,各有擅長,目前並沒有融合趨勢。
驅動差別也很大,DDR只要初始化不需驅動(也可以使用dma驅動),用於連接內存。pcie類似,用於連接除高速設備,網卡,固態硬盤,顯卡等。他們都是內存映射。sata,usb.是操縱數據塊做dma,sata連硬盤和固態硬盤,usb連得就多了,有個協議叫usb class,定義了所有可連接的設備類型。I2C這類低速的連數據塊都不用,直接填地址和數據到寄存器。連接各種傳感器等低速設備,也用可於高速設備的配置,比如內存條。
高速設備需要考慮效率和性能,包括pcie/sata/usb。雖然寫法不同,但是等你看懂驅動后,他們在驅動模型和效率方面的考量,是一致的。
地址總線
它是單向的,只能從CPU傳向外部
存儲器或I/O端口,地址總線上使得地址的64線路處於開合狀態下,在該狀態下,對應地址里面的數據可以獲取或者存入
控制總線
控制總線,英文名稱:ControlBus,簡稱:CB。控制總線主要用來傳送控制信號和時序信號。控制信號中,有的是微處理器送往存儲器和輸入輸出設備接口電路的,如讀/寫信號,片選信號、中斷響應信號等;也有是其它部件反饋給CPU的
數據總線
數據總線數據總線是CPU與存儲器、CPU與I/O接口設備之間傳送數據信息(各種指令數據信息)的總線,這些信號通過數據總線往返於CPU與存儲器、CPU與I/O接口設備之間,因此,數據總線上的信息是雙向傳輸的。