<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 可以獲得同RTL設計一樣的I/O速度

可以獲得同RTL設計一樣的I/O速度

——
作者: 時(shí)間:2005-09-10 來(lái)源:EDN電子設計技術(shù) 收藏
可以獲得同RTL設計一樣的I/O速度
 可配置處理器基于隊列與端口的機制
  對于SoC設計中的許多任務(wù)而言,將一個(gè)處理器中的所有輸入和輸出接口都映象成存儲器地址既無(wú)必要也無(wú)效率。有時(shí)候將輸入/輸出接口映象到存儲器地址可以讓程序員或者編譯器去動(dòng)態(tài)地選擇幾個(gè)計算部件的源和目的。然而,如果動(dòng)態(tài)尋址不那么重要的話(huà),那么將外部信號和處理器執行部件直接相連能夠進(jìn)一步加速系統的性能并可以減少復雜度?;谟簿€(xiàn)連接的接口對許多RTL設計人員來(lái)說(shuō)也是非常熟悉的,它允許處理器在不改變現存RTL模塊中各個(gè)模塊接口(“pin”)定義的情況下去替換那些硬件模塊。
  Tensilica為SoC設計的Xtensa LX可配置處理器可以將信號直接與其SoC邏輯模塊中的執行部件進(jìn)行連接,而且其輸出信號可以直接與其它SoC模塊連接,而不需要利用其傳統的總線(xiàn)。因此,數據搬移就不需要傳統的加載和存儲指令,所以數據輸入/輸出就不會(huì )有額外的開(kāi)銷(xiāo)。這些附加的訪(fǎng)問(wèn)處理器端口可由Tensilica的指令擴展語(yǔ)言TIE進(jìn)行建立,TIE語(yǔ)言包含了兩個(gè)新的適用于Xtensa LX處理器的技術(shù)特征,即TIE端口和隊列技術(shù)。

本文引用地址:http://dyxdggzs.com/article/8465.htm

  兩種基本的接口握手信號風(fēng)格適合不同的輸入和輸出環(huán)境,用于將處理器與外部信號直接互連:
  ● 通過(guò)端口進(jìn)行數值輸入和狀態(tài)輸出;
  ● 輸入和輸出隊列。
  考慮圖1所示的一個(gè)簡(jiǎn)單的硬件功能模塊框圖。該功能模塊基本的輸入和輸出信號可以簡(jiǎn)化成模塊邊界的硬線(xiàn)連接。
  輸入和輸出端口可以用于可配置處理器操作的源操作數和目的操作數,這樣可以確??焖俣`活的硬件接口。下面的程序是圖1中的功能模塊的實(shí)現,用TIE語(yǔ)言寫(xiě)成。該例子采用隊列技術(shù)將數據從功能模塊中搬入和搬出。
  1: state state1 24 add_read_write
  2: state state2 24 add_read_write
  3: state lastinput1 24
  4: state nextoutput1 24
  5: queue input1 24 in
  6: queue input2 24 in
  7: queue output1 24 out
  8: operation lookup.mul.mul {} {in input1, in input2, in state1, in state2, inout lastinput1, out output1, inout nextoutput1, out VAddr, in MemDataIn32} {
  9: assign VAddr = {8'h0, lastinput1 + state1};
  10: assign lastinput1 = input1;
  11: wire [23:0] mulout = MemDataIn32[23:0] * input2;
  12: assign output1 = nextoutput1;
  13: assign nextoutput1 = mulout * state2;}
  14: schedule inst_sched {lookup.mul.mul} {use state2 4; use nextoutput1 3; use input1 2; use input2 2; def lastinput1 3; def nextoutput1 4; def mulout 3; def output1 3; }
  以上為具有輸入和輸出隊列的數據通路TIE實(shí)現示例。
  在上面的例子中,第14行schedule語(yǔ)句中的“use”和“def”變量說(shuō)明Xtensa處理器流水線(xiàn)各級中輸入隊列接口有數據(use),而處理器輸出隊列接口則接收從流水線(xiàn)(def)中來(lái)的輸出數據。輸入隊列接口在流水線(xiàn)訪(fǎng)存級(第2級)有數據,而輸出隊列接口在流水線(xiàn)寫(xiě)回級(第3級)接收數據。狀態(tài)lastinput1和 狀態(tài)nextoutput1允許后輸入到隊列中的數據用于后續的指令,而前面指令中后計算出來(lái)的結果則被送入到輸出隊列。


  隊列輸入和輸出直接和硬線(xiàn)結構相連接。對相應隊列結構的訪(fǎng)問(wèn)將自動(dòng)從輸入隊列中彈出數據以及從輸出隊列中壓入數據。隊列控制機制采用指令消除方法(由于其它各種事件所引起),并確保即使在處理遇到未期望的錯誤條件下也能夠沒(méi)有額外的數據壓入或者彈出隊列。
  隊列是指令映象連接的一種方式。它們非常適合專(zhuān)用處理器中的操作數數據流,因為請求/應答握手信號已經(jīng)是隊列接口的一部分,如圖2所示。
  隊列輸入表示數據流被處理器上運行的應用程序所使用。使用的指令順序執行,執行結果也是順序可見(jiàn)的。類(lèi)似地,隊列輸出表示應用程序處理器產(chǎn)生的一系列數據。數據的生產(chǎn)和消費(使用)可以由硬件進(jìn)行管理,因此可能的指令執行消除效應都被隱藏了,并且不需要顯式的請求/應答握手信號。如果沒(méi)有產(chǎn)生出足夠多的數據,那么處理器就會(huì )暫停使用這些操作數。如果消費處理器落后的話(huà),那么產(chǎn)生處理器就會(huì )暫停產(chǎn)生操作數,并允許數據填入輸入緩沖區。這些隊列會(huì )在處理器之間形成一種高效的數據流連接,尤其是當幾個(gè)處理器形成一個(gè)大規模的計算流水線(xiàn)時(shí)更是如此。
  第二種接口直接連接的方式是基于端口,即基于一組硬線(xiàn)的數據輸入和狀態(tài)輸出。這些端口在執行諸如測試外部狀態(tài)、條件信息或者控制其它邏輯功能這些任務(wù)時(shí)尤其有用。
  上面的例子也可以采用輸入數據和輸出狀態(tài)方式來(lái)實(shí)現,如下面圖所示。該實(shí)現使用一個(gè)顯式的數據輸出信號next_data來(lái)指示input1和input2所需要的新的數據值,并且一個(gè)新的輸出數據在output1信號線(xiàn)上出現。系統開(kāi)發(fā)人員負責確保外部邏輯在下一次使用input1和input2端口前有足夠的時(shí)間來(lái)響應輸出的next_data信號。上面的保證對中等程度性能的應用程序而言是非常容易實(shí)現的,只需要在一個(gè)輸入數據和其后的下一個(gè)輸入之間占用幾十個(gè)時(shí)鐘周期。然而,數據隊列對于超高速數據速率輸入的情況下一般是非常簡(jiǎn)單和快速的。注意到,指令集和程序必須顯式說(shuō)明next_data信號來(lái)請求新的輸入數據,并指示一個(gè)新的輸出數據可用


關(guān)鍵詞: Tensilica公司

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>