最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

AHB總線筆記(三)附AMBA2.0面試提問(wèn)

2022-03-20 16:49 作者:不吃蔥的酸菜魚  | 我要投稿

疊加在一起的AMBA系統(tǒng)Multi-layer:

并行的訪問(wèn)可以提高系統(tǒng)的帶寬。


AHB-Lite

????????假設(shè)AHB上面只有一個(gè)master,再這個(gè)系統(tǒng)下面不需要request,不需要grant,壓根就不需要arbiter,slave也是一樣會(huì)更加簡(jiǎn)單,不需要RETRY也不需要SPLIT,只需要返回ERROR或者OKAY

AHB總結(jié):

※ 主要組成部分:

????Master、slaves、arbiter、decoder 。

※ 傳輸?shù)倪^(guò)程:

????流水線機(jī)制,有address phase 和data phase。

※ 提高性能:

????Burst read/Write。

※ 仲裁機(jī)制:

????總線控制權(quán)的移交。

※ 如果slave短時(shí)間內(nèi)無(wú)法響應(yīng)

????可以把HREADY拉低

※ 如果slave長(zhǎng)時(shí)間無(wú)法響應(yīng)

????可以插入SPLIT或者RETRY

※ 如果master不能進(jìn)行傳輸

????master的HTRANS插入BUSY,注意BUSY和IDLE的區(qū)別,BUSY是插在同一個(gè)burst中間,而IDLE是插在兩次burst中間。

※ Arbiter 的優(yōu)先級(jí)最好可以配置。

※ 如果slave長(zhǎng)時(shí)間不能響應(yīng)的話,一般不支持SPLIT響應(yīng),使用RETRY響應(yīng)。

※ 總線上如果只有一個(gè)Master的話,可以使用AHB Lite協(xié)議,不用arbiter。


APB總線:

APB比AHB要簡(jiǎn)單很多

APB信號(hào):

????????APB總線的信號(hào),開(kāi)頭都是P開(kāi)頭,這點(diǎn)在筆記一有所提到。APB中也有很多的slave ,每個(gè)slave也有一段自己的地址空間,address落在哪個(gè)地址空間內(nèi),哪個(gè)PSELx就會(huì)拉高。PWRITE = 1的時(shí)候就是寫操作,PWRITE = 0的時(shí)候就是讀操作。

PADDR [31:0] 地址總線,由設(shè)備總線的bridge單元驅(qū)動(dòng)。

PSELx 從譯碼器來(lái)的信號(hào),到每一個(gè)總線從設(shè)備x。

PENABLE 用于在設(shè)備總線上把所有訪問(wèn)按時(shí)間階段進(jìn)行。

PRDATA 和 PWDATA 最多32位寬。

APB互連:

????????APB Master會(huì)把AHB輸入的CLK、HADDR、HWRITE、HWDATA全部都傳輸給自己的slave,信號(hào)以廣播的形式傳播給各個(gè)slave,但是具體哪個(gè)slave能得到相應(yīng)開(kāi)始工作還得看PSEL具體選擇了哪個(gè)slave,選中了slave之后PRDATA讀入mux傳回給Bridge。

APB寫傳輸:

????????APB寫操作里面,當(dāng)選中某個(gè)slave時(shí),PSEL信號(hào)拉高,選中slave,然后具體是否寫入還得看PENABLE是否拉高,只有PSEL和額PENABLE同時(shí)拉高時(shí),才可以進(jìn)行數(shù)據(jù)寫入。APB不是pipeline的形式。APB在PSEL信號(hào)拉高后,PENABLE最快也得延遲一個(gè)周期拉高,所以APB數(shù)據(jù)傳輸最快也得兩個(gè)cycle才能寫入一個(gè)數(shù)據(jù)。

APB讀傳輸:

????????讀傳輸和寫傳輸一樣,最快也得兩個(gè)周期讀一個(gè)數(shù)據(jù),APB中沒(méi)有用pipeline,兩個(gè)cycle一個(gè)是SETUP cycle 一個(gè)是ENABLE cycle。

AHB2APB Bridge

Bridge

????????在上面的APB Bridge里,其實(shí)大部分信號(hào)都是從AHB接入,或者內(nèi)部slave輸出的,實(shí)際上APB需要處理的就是PENABLE信號(hào)。而這個(gè)ENABLE信號(hào)的產(chǎn)生是通過(guò)一個(gè)狀態(tài)機(jī)產(chǎn)生的。

ENABLE信號(hào)產(chǎn)生FSM

APB slave接口:

APB slave 接口

APB到AHB接口:

假設(shè)要做一個(gè)AHB的master,要去讀APB的信號(hào)。

????????AHB每?jī)蓚€(gè)cycle才能讀一個(gè),因?yàn)锳PB最快讀數(shù)據(jù)也得兩個(gè)cycle。如果AHB和APB的時(shí)鐘頻率是一樣的,那么PRDATA讀出來(lái)可以直接賦值給HRDATA,但是如果APB的時(shí)鐘頻率更低,那么就不能直接賦值,需要把值用寄存器存一下,然后在返回給AHB。這一張圖就可以把APB的信號(hào)傳輸說(shuō)清楚了,不管是讀和寫,都先給一個(gè)PSEL,然后在下一個(gè)周期PENABLE拉高,進(jìn)行讀或者寫操作。

????????每一個(gè)從設(shè)備都占用系統(tǒng)的一段地址空間。所有的從設(shè)備都是可尋址的。寄存器/存儲(chǔ)器都是內(nèi)存映射方式訪問(wèn)。CPU/IP讀寫其他IP的數(shù)據(jù)類似于讀寫存儲(chǔ)器。

????????CPU和IP之間的通信:

????????CPU 和 IP 進(jìn)行通信,CPU總是主設(shè)備,IP總是從設(shè)備,IP可以發(fā)送一個(gè)中斷請(qǐng)求,CPU 進(jìn)入中斷模式就可以去讀slave的狀態(tài)寄存器,來(lái)判斷你到底想?yún)R報(bào)一個(gè)什么事情,由interrupt service routine(ISR)來(lái)處理中斷。

????????比如DMA和 CPU之間的通信,DMA的狀態(tài)寄存器就是Status, 存放的地址空間為0x04,有ready和busy兩種狀態(tài)。由DMA向CPU發(fā)起一次中斷,然后CPU進(jìn)入中斷模式,去讀DMA狀態(tài)寄存器中的狀態(tài),如果狀態(tài)為ready,并且要發(fā)起一次數(shù)據(jù)搬運(yùn)start,那么就可以給DMA傳輸起始地址、終止地址和數(shù)據(jù)長(zhǎng)度,把數(shù)據(jù)搬運(yùn)的任務(wù)交給DMA。


學(xué)完AMBA 2.0 知道了AHB和APB的協(xié)議,需要徹底掌握:

  1. AHB有哪些組成部分?

  2. APB有哪些組成部分?

  3. AHB信號(hào)由哪些?分別有什么作用?

  4. AHB傳輸有幾個(gè)階段?哪些階段?

  5. burst傳輸時(shí)如何開(kāi)始一段新的INCR傳輸?

  6. burst傳輸能超越1K邊界嗎?為什么?如果跨越1K邊界要怎么處理?

  7. HSEL信號(hào)是如何得到的?

  8. AHB slave有哪些響應(yīng)信號(hào)?

  9. AHB slave短時(shí)間無(wú)法響應(yīng)怎么辦? 長(zhǎng)時(shí)間無(wú)法響應(yīng)怎么辦?

  10. AHB HTRANS中的IDLE和BUSY有什么區(qū)別?

  11. AHB slave的HRESP響應(yīng)的RETRY和SPLIT有什么區(qū)別?

  12. 32bit小印第安序是怎么控制數(shù)據(jù)總線的有效字節(jié)的?如果傳輸?shù)臄?shù)據(jù)不是32bit而是8bit,那么傳輸?shù)氖悄?bit,由什么判斷?

  13. master 可以控制總線的條件是什么?

  14. 什么是AHB lite?

  15. APB有哪些信號(hào)?分別有什么作用?

  16. APB傳輸有什么特點(diǎn)?

  17. AHB和AHB Lite有什么區(qū)別?

????????如果能完整回答上面的問(wèn)題,那面試提問(wèn) AMBA總線2.0的內(nèi)容就基本沒(méi)什么問(wèn)題了,上面所有問(wèn)題的答案,都可以在我寫的AHB總線筆記里得到答案。

????????祝大家找工作順利。


AHB總線筆記(三)附AMBA2.0面試提問(wèn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
金乡县| 汪清县| 黄山市| 六枝特区| 塘沽区| 开封县| 横峰县| 枞阳县| 辽宁省| 聂拉木县| 古浪县| 肥乡县| 瓦房店市| 漳平市| 历史| 河间市| 门头沟区| 青河县| 克拉玛依市| 保德县| 晋州市| 梅河口市| 理塘县| 平顶山市| 乌兰浩特市| 古田县| 临沧市| 札达县| 贵德县| 龙门县| 台南市| 宜宾市| 麻栗坡县| 石阡县| 乌拉特中旗| 绥江县| 郓城县| 凤阳县| 丹东市| 阿城市| 腾冲县|