高帶寬嵌入式應用中SoC微控制器的總線(xiàn)設計
使用循環(huán)仲裁
![]() |
在前面例子中,當基于特定仲裁再分配調度方案的LCD請求額外的總線(xiàn)訪(fǎng)問(wèn)時(shí),程序設計者可根據LCD必須處理的數據流的性質(zhì)來(lái)指定分配給LCD的優(yōu)先級。如果程序設計者認為需要分配10個(gè)槽位給LCD控制器,剩余的6個(gè)槽位會(huì )按最初仲裁方案分配給其它總線(xiàn)主控。這樣LCD控制器可獲得十倍于正常情況下可得到的帶寬,以及十倍于其它主控的帶寬來(lái)處理這種特定情形下的負載。
當通過(guò)以太網(wǎng)連接傳送數據、同時(shí)LCD屏幕進(jìn)行刷新的時(shí)候,這種特性十分重要。LCD需要實(shí)時(shí)、準確地進(jìn)行刷新,且不會(huì )被以太網(wǎng)請求中斷。
在典型的AMBA總線(xiàn)架構中,如果LCD對總線(xiàn)提出請求,不論有怎樣的刷新需求,它都不得不等待直到以太網(wǎng)主控將總線(xiàn)釋放出來(lái)。采用新的循環(huán)可編程仲裁方案,程序設計者可降低以太網(wǎng)傳輸的優(yōu)先級,使數據以更低但可接受的速率傳輸,確保LCD得以適當地刷新而不至于使屏幕出現空白。
如果為保證活動(dòng)畫(huà)面顯示對LCD延時(shí)和帶寬要求極高,則以太網(wǎng)協(xié)議需求還可進(jìn)一步降低傳輸速率。但停止數據流傳輸是不可以的。實(shí)際上,如果LCD主控控制了該總線(xiàn)并且只有當刷新工作完成后才將總線(xiàn)釋放,則有可能停止數據流的傳輸。
在外圍總線(xiàn)中增加突發(fā)模式DMA
在基于A(yíng)MBA的設計中,外圍總線(xiàn)的傳統設計方法是假定基于A(yíng)RM內核的嵌入式器件用于低端性能應用。但現在的器件經(jīng)常需要在不切斷低帶寬外圍電路訪(fǎng)問(wèn)總線(xiàn)資源的情況下,運行一種或多種高帶寬應用。在具有較多外圍電路的設計中,這種情況特別容易出問(wèn)題。例如NS9750或NS9360,它們支持USB、I2C,具有四個(gè)多功能串行模塊(可選用UART或SPI,同步模式下的速率可達11Mbps)、50個(gè)單獨的可編程GPIO引腳、一個(gè)IEEE1284外圍端口以及16個(gè)通用定時(shí)器或計數器(每個(gè)都有自己的I/O引腳)。
在傳統的APB實(shí)現方案中,采用FIFO就足以應付通信外設(如UART)的低速率傳輸,FIFO可以在處理器必須介入并訪(fǎng)問(wèn)APB之前將數個(gè)字節傳送到接口。但在本文所描述的許多高端嵌入式應用中,一個(gè)或多個(gè)這樣的外圍電路可能需要高帶寬傳輸,要求能通過(guò)APB/AHB橋快速訪(fǎng)問(wèn)主要的高性能總線(xiàn)。
一種讓外圍總線(xiàn)工作于這種突發(fā)模式的方法,是僅用一條突發(fā)模式外圍總線(xiàn)(如NetSilicon的 BBUS)替代APB總線(xiàn)。這種突發(fā)模式外圍總線(xiàn)帶有四個(gè)支持突發(fā)模式的總線(xiàn)主控(見(jiàn)圖3):第一個(gè)總線(xiàn)主控是具有13個(gè)通道的DMA引擎,支持13個(gè)USB端點(diǎn);第二個(gè)總線(xiàn)主控是具有12個(gè)通道的DMA引擎,支持4個(gè)串行模塊(每個(gè)串行模塊有8個(gè)通道)和1284端口;第三個(gè)總線(xiàn)主控為BBUS-AHB橋,它包含一個(gè)DMA引擎,該引擎具有可訪(fǎng)問(wèn)AHB系統總線(xiàn)的通道;第四個(gè)總線(xiàn)主控是一個(gè)USB宿主模塊。另外,這種DMA引擎有兩個(gè)獨立的專(zhuān)用DMA通道,可支持連接到外部存儲總線(xiàn)的外部設備。為簡(jiǎn)化突發(fā)模式狀態(tài),每一個(gè)內部DMA通道以“飛越模式”(fly-by mode)在系統存儲器及BBUS外圍電路之間傳輸數據,而兩個(gè)外部DMA通道則選擇存儲器到存儲器的傳輸模式。
評論