1. 程式人生 > >XILINX_zynq_詳解(4)

XILINX_zynq_詳解(4)

摘錄一篇關於ZYNQ的一些概念:

PS: 處理系統 (Processing System) ,  就是與FPGA無關的ARM的SOC的部分。

PL: 可程式設計邏輯 (Progarmmable Logic), 就是FPGA部分。之所以叫PL,而不是叫FPGA,我想,原因主要是考慮到讓搞軟體的兔子們不要看了以後望而生畏。邏輯嘛,搞軟體的也要講邏輯是不?可程式設計,軟體就是程式設計是不?

ZYNQ,往大里說,就是兩大功能塊,PS 部分和 PL部分, 說白了,就是ARM的SOC部分,和FPGA部分。

下一個層級, APU部分:

 APU: 應用處理器單元(Application Processor Unit).  位於PS裡面的中心位置。這個名字起的,就有點學問了。 

APU這三個字,AMD公司曾經用過,特指全稱是“Accelerated Processing Units”,加速處理器,它是融聚了CPU與GPU功能的產品,電腦上兩個最重要的處理器融合,相互補足,發揮最大效能。XILINX 的APU與AMD的APU在縮寫上就是截然不同的兩個詞, 不能混淆了。

APU 這個詞,在Xilinx內部的術語中,也是撞車了的。 在XILINX 的 PowerPC體系中, 有一個輔助處理單元“Auxiliary Processing Unit” 的概念,指的是在PowerPC硬核外掛的浮點協處理器之類的單元。

在這個位置上的處理器, 還有各種其他的叫法, 有MCU (微控制器處理單元Microcontroller

 Unit), MPU (微處理器單元Microprocessor Unit),等等。  MCU這個叫法,暗示了處理器功能不強,只能搞搞輸入輸出控制啊,寫個小狀態機啊, 一般都是8位機。  MPU呢,就更先進了一些,成prcessor了,這意味著處理器通常是32位的, 能幹點計算的事。 但是, 有一個micro詞根在裡面,說明乾的是小活, 通常沒有正式的和全尺寸的作業系統, 通常沒有記憶體管理單元MMU。  ARM 的Cortex-M系列是幹這類活的。

APU, 帶了Application這個詞, 意味著在上面可以跑應用程式, 暗示著這個系統是需要全尺寸的作業系統的,和現在炙手可熱的應用商店app store 遙相呼應。 

APU裡面具體包含的內容嘛,就是雙ARM-CortexA9核,加上高速緩衝,DMA,定時器,中斷控制,浮點和NEON協處理,硬體加速器一致性控制器ACP神馬的。  也就是,處理器核心部分。

套用時下越來越流行的詞彙,“嵌入式計算”, "embedded computing", 可以這麼說,用MCU,MPU搭出來的東東,通常叫嵌入式系統。  而APU搭出來的東東, 就夠格叫嵌入式計算系統了。

TTC, 這個詞,當年猜了半天也拿不準,看了文件,發現,是Triple Time Counter的意思。 就是這個計數器裡面有3個獨立通道,可以獨立計數。 掛在APB上,為系統或外設提供定時或計數服務的。


WDT,  看門狗定時器,有兩個, 分別監視ARM-Cortex A9用的。  如果軟體跑飛,無法清定時器,一段時間後,看門狗就復位。

SWDT,系統級看門狗定時器, 這個看門狗的時鐘和復位訊號,都可以來自於晶片外部, 這樣,即使系統有嚴重故障,比如時鐘頻率本身都有問題了,仍然可以通過與系統無關的外部訊號計數,計數滿就復位。 

 SCU, Snoop Control Unit,  用來保持雙核之間的資料Cache的一致性。 也就是是說,第一個A9

處理器寫儲存時,只是寫在了快取裡,沒有進主存,  如果第二個A9讀操作,涉及到第一個寫髒了的資料段, SCU要保證第二個A9的快取裡是最新的資料。  如果第二個A9寫同樣資料段的資料,需要在第一個中體現出寫的內容。   SCU的存在,才使得兩個核成互相聯絡的“雙核”,才能成為MPsoc。   在原先XILINX的雙PowerPC的晶片中, 是木有這個東東的。不少學校的老師拿XILINX的雙powerpc練手和教學,從頭搭一個Snoop協議在裸的雙PowerPC中,倒也不錯。