SRAM的兩個(gè)緩沖器的兩個(gè)獲取響應(yīng)(也被稱為寫入操作)在相同時(shí)間從第一 L3高速緩存和第二 L3高速緩存到達(dá)時(shí),寫入沖突可能發(fā)生。
[0023]圖1圖示半導(dǎo)體芯片100的框圖,在該半導(dǎo)體芯片上,根據(jù)本公開的實(shí)施例的支持單端口存儲(chǔ)器設(shè)備120的模塊115被配置為避免寫入沖突。半導(dǎo)體芯片100可以例如是計(jì)算機(jī)處理芯片。半導(dǎo)體芯片100可以包括共同地被稱為105的一個(gè)或者多個(gè)處理器核。圖I圖示四個(gè)核105a、105b、105c和105d。半導(dǎo)體芯片100可以包括這里被共同地稱為數(shù)據(jù)發(fā)送器110的第一數(shù)據(jù)發(fā)送器IlOa和第二數(shù)據(jù)發(fā)送器110b。數(shù)據(jù)發(fā)送器110可以在一個(gè)實(shí)施例中是高速緩存、諸如L3高速緩存。每個(gè)數(shù)據(jù)發(fā)送器110可以由核105共享。與模塊115通信的數(shù)據(jù)發(fā)送器110可以向模塊115發(fā)送寫入操作。模塊115可以包括一個(gè)或者多個(gè)單端口存儲(chǔ)器設(shè)備(SPM) 120。模塊115可以是外圍部件互連(PCI)橋控制器,然而可以考慮包括單端口存儲(chǔ)器設(shè)備120的其它模塊。模塊115可以向一個(gè)或者多個(gè)讀取請求器進(jìn)行輸出。在實(shí)施例中,多個(gè)半導(dǎo)體芯片可以用來包含所引用的部件。
[0024]這里的實(shí)施例可以提供模塊115,其被配置為允許從數(shù)據(jù)發(fā)送器110向單端口存儲(chǔ)器設(shè)備120的寫入操作,而無寫入沖突。避免寫入沖突可以通過將來自數(shù)據(jù)發(fā)送器110的寫入操作的數(shù)據(jù)對象劃分成兩個(gè)或者更多子數(shù)據(jù)對象來完成。該劃分可以對于每個(gè)寫入操作而發(fā)生,并且寫入操作的每個(gè)子數(shù)據(jù)對象可以具有專用單端口存儲(chǔ)器設(shè)備120。每個(gè)專用單端口存儲(chǔ)器設(shè)備120存儲(chǔ)來自每個(gè)寫入操作的一種類型的子數(shù)據(jù)對象。這允許在相同時(shí)間到達(dá)單端口存儲(chǔ)器設(shè)備120的寫入操作在與來自第二寫入操作的第二類型子數(shù)據(jù)對象向第二單端口存儲(chǔ)器設(shè)備進(jìn)行寫入相同的時(shí)間向第一單端口存儲(chǔ)器設(shè)備寫入來自第一寫入操作的第一類型子數(shù)據(jù)對象。在實(shí)施例中,可以如通過使第一單端口存儲(chǔ)器設(shè)備專用于偶數(shù)據(jù)對象和使第二單端口存儲(chǔ)器設(shè)備專用于奇數(shù)據(jù)對象來防止在相同單端口存儲(chǔ)器設(shè)備上的寫入沖突這樣的目的所必需的那樣對準(zhǔn)和延遲數(shù)據(jù)對象。當(dāng)存在來自單個(gè)數(shù)據(jù)請求器的數(shù)據(jù)請求時(shí),模塊115可以并行輸出數(shù)據(jù)對象的偶和奇子數(shù)據(jù)對象以組合成整個(gè)數(shù)據(jù)對象。在其它實(shí)施例中,當(dāng)存在在相同時(shí)間來自兩個(gè)或者更多讀取請求器的兩個(gè)或者更多數(shù)據(jù)對象請求時(shí),模塊115可以被配置為發(fā)送兩個(gè)數(shù)據(jù)對象而不造成讀取沖突。
[0025]圖2圖示根據(jù)實(shí)施例的模塊115的框圖,單端口存儲(chǔ)器設(shè)備120位于該模塊中,并且其中模塊115被配置為避免在單端口存儲(chǔ)器設(shè)備120上的寫入沖突和讀取沖突。與某些實(shí)施例一致,模塊115可以包括用于每個(gè)寫入操作的串行化器、諸如串行化器205a和205b、統(tǒng)稱為串行化器205。模塊115可以包括多個(gè)單端口存儲(chǔ)器設(shè)備120 (120a、120b、120c和120d)、寫入控制器215、讀取控制器220、寫入電路225和讀取電路230。第一寫入操作可以來自可以產(chǎn)生寫入操作的第一數(shù)據(jù)發(fā)送器110a、諸如高速緩存或者任何其它電路。第二寫入操作可以來自可以產(chǎn)生寫入操作的第二數(shù)據(jù)發(fā)送器I 1b、諸如高速緩存或者任何其它電路。第一寫入操作可以產(chǎn)生第一數(shù)據(jù)對象。第二寫入操作可以產(chǎn)生第二數(shù)據(jù)對象。數(shù)據(jù)對象可以是在數(shù)據(jù)發(fā)送器110與單端口存儲(chǔ)器設(shè)備120之間的接口總線的自然寬度。在從L3高速緩存向PCI橋控制器的寫入操作的情況下,數(shù)據(jù)對象可以例如是16字節(jié)。
[0026]一旦由模塊115從數(shù)據(jù)發(fā)送器110接收到,第一數(shù)據(jù)對象可以進(jìn)入第一串行化器205a。第二數(shù)據(jù)對象可以進(jìn)入第二串行化器205b。串行化器205可以將數(shù)據(jù)對象劃分成多個(gè)子數(shù)據(jù)對象。在所示示例中,串行化器205可以是2:1串行化器,這可以要求單端口存儲(chǔ)器設(shè)備以普通總線速度的兩倍進(jìn)行操作。串行化器205可以將數(shù)據(jù)對象對半劃分成偶子數(shù)據(jù)對象和奇子數(shù)據(jù)對象。這也可以從第一數(shù)據(jù)對象產(chǎn)生第一偶子數(shù)據(jù)對象和第一奇子數(shù)據(jù)對象。第二偶子數(shù)據(jù)對象和第二奇子數(shù)據(jù)對象可以由第二串行化器205b從第二數(shù)據(jù)對象創(chuàng)建。在給定的示例中,16字節(jié)數(shù)據(jù)對象可以被劃分成8字節(jié)子數(shù)據(jù)對象。偶子數(shù)據(jù)對象可以被發(fā)送到專用于偶子數(shù)據(jù)對象的第一單端口存儲(chǔ)器設(shè)備,并且奇子數(shù)據(jù)對象可以被發(fā)送到專用于奇子數(shù)據(jù)對象的第二單端口存儲(chǔ)器設(shè)備。
[0027]子數(shù)據(jù)對象可以被寫入到多個(gè)單端口存儲(chǔ)器設(shè)備120。在一個(gè)實(shí)施例中,單端口存儲(chǔ)器設(shè)備120可以是SRAM。每個(gè)單端口存儲(chǔ)器設(shè)備120可以被指定用于偶子數(shù)據(jù)對象或者奇子數(shù)據(jù)對象。每個(gè)單端口存儲(chǔ)器設(shè)備120可以包含多個(gè)緩沖器。單端口存儲(chǔ)器設(shè)備120a和120b可以包括八個(gè)緩沖器。每個(gè)緩沖器的一半可以在每個(gè)單端口存儲(chǔ)器設(shè)備120a和120b中。例如,單端口存儲(chǔ)器設(shè)備120a可以包括用于偶子數(shù)據(jù)對象的偶緩沖器(0),并且單端口存儲(chǔ)器設(shè)備120b可以包括用于數(shù)據(jù)對象的奇部分的奇緩沖器(O)。寫入電路225可以調(diào)節(jié)進(jìn)入單端口存儲(chǔ)器設(shè)備120的子數(shù)據(jù)對象,如通過示例寫入復(fù)用器240所示地那樣。寫入控制器215可以與單端口存儲(chǔ)器設(shè)備120互連以便向單端口存儲(chǔ)器設(shè)備提供寫入使能信號和寫入地址。寫入控制器可以與數(shù)據(jù)發(fā)送器110可操作通信。數(shù)據(jù)發(fā)送器110可以向?qū)懭肟刂破?15發(fā)信號通知何時(shí)執(zhí)行寫入。寫入控制器215也可以與每個(gè)寫入復(fù)用器240通信(為了圖2清楚,寫入控制器215在該圖中與寫入電路225通信)以導(dǎo)引子數(shù)據(jù)對象。
[0028]對于針對單端口存儲(chǔ)器設(shè)備120的每個(gè)寫入使能周期,可以建立寫入操作以僅寫入奇子數(shù)據(jù)對象或者偶子數(shù)據(jù)對象??梢酝瓿蛇@一點(diǎn),從而第一寫入操作不與第二寫入操作等同地對準(zhǔn)。在所示示例中,第一數(shù)據(jù)發(fā)送器IlOa可以寫入偶子數(shù)據(jù)對象,而第二數(shù)據(jù)發(fā)送器IlOb寫入奇數(shù)據(jù)對象。該布置可以保證無單端口存儲(chǔ)器設(shè)備寫入沖突發(fā)生。這是因?yàn)樵趶牡谝粩?shù)據(jù)發(fā)送器IlOa向第一單端口存儲(chǔ)器設(shè)備120a寫入偶子數(shù)據(jù)對象時(shí),從第二發(fā)送器IlOb向第二單端口存儲(chǔ)器設(shè)備120b寫入奇子數(shù)據(jù)對象,而在從第一數(shù)據(jù)發(fā)送器IlOb寫入奇子數(shù)據(jù)對象時(shí)相反。
[0029]在將從單端口存儲(chǔ)器設(shè)備120取回?cái)?shù)據(jù)對象時(shí),讀取控制器220可以管理獲得子數(shù)據(jù)對象的讀取操作。讀取控制器220可以與單端口存儲(chǔ)器設(shè)備120中的每個(gè)單端口存儲(chǔ)器設(shè)備互連。讀取控制器220可以用來向單端口存儲(chǔ)器設(shè)備120提供讀取使能信號和讀取地址。讀取控制器220可以從一個(gè)或者多個(gè)讀取請求器250a和250b接收讀取請求。讀取控制器220也可以與讀取電路230通信。讀取控制器220可以控制讀取電路230的解復(fù)用器245以及解串行化器235a和235b以用于恰當(dāng)讀取。可以存在可以在相同時(shí)間請求一個(gè)或者多個(gè)數(shù)據(jù)對象的多個(gè)讀取請求器,這可能造成讀取沖突。圖2圖示讀取電路230在存在兩個(gè)讀取請求器時(shí)的實(shí)施例。在各種實(shí)施例中,一個(gè)讀取可以一次從一個(gè)讀取請求器發(fā)生。圖5圖示以下進(jìn)一步說明的讀取電路545,該讀取電路可以在存在一個(gè)讀取請求器時(shí)取代讀取電路230用于模塊115。當(dāng)存在一個(gè)讀取請求器時(shí),針對第一數(shù)據(jù)對象或者第二數(shù)據(jù)對象,可以從單端口存儲(chǔ)器設(shè)備120取回或者發(fā)送奇子數(shù)據(jù)對象和偶子數(shù)據(jù)對象。可以并行取回奇子數(shù)據(jù)對象和偶子數(shù)據(jù)對象以根據(jù)哪個(gè)數(shù)據(jù)對象被請求來形成完整的第一數(shù)據(jù)對象或者第二數(shù)據(jù)對象。
[0030]在其它實(shí)施例中,可以如圖2中所示存在兩個(gè)讀取請求器??梢栽谂c來自第二讀取請求器250b的對于數(shù)據(jù)對象的第二請求相同的時(shí)間存在來自第一讀取請求器250a的對于在至少一個(gè)相同單端口存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)對象的第一讀取請求。這可能引起與以上說明的寫入沖突相似的讀取沖突。單端口存儲(chǔ)器120可以與相應(yīng)解復(fù)用器245通信。每個(gè)解復(fù)用器245可以與第一解串行化器235a和第二解串行化器235b通信。讀取控制器220可以管理解復(fù)用器245以及解串行化器235a和235b的輸出。第一讀取請求器250a可以耦合到第一解串行化器235a的輸出,并且第二讀取請求器250b可以耦合到第二解串行化器235b的輸出。兩個(gè)讀取請求器可以耦合到讀取控制器220以用于用信號發(fā)送讀取。
[0031 ] 在各種實(shí)施例中,第一數(shù)據(jù)對象和第二數(shù)據(jù)對象可以被存儲(chǔ)于相同單端口存儲(chǔ)器中的至少一個(gè)單端口存儲(chǔ)器中,這些單端口存儲(chǔ)器可以是用于偶子數(shù)據(jù)對象的單端口存儲(chǔ)器120a和用于奇子數(shù)據(jù)對象的單端口存儲(chǔ)器120b。第一讀取請求器可以在與第二請求器請求第二數(shù)據(jù)對象相同的時(shí)間請求第一數(shù)據(jù)對象。如果兩個(gè)讀取請求發(fā)生,則模塊115的讀取控制器220可以指引來自偶單端口存儲(chǔ)器120a的第一數(shù)據(jù)對象的第一偶子數(shù)據(jù)對象被發(fā)送到第一解串行化器235a。而且,來自奇單端口存儲(chǔ)器120b的第二數(shù)據(jù)對象的第二奇子數(shù)據(jù)對象可以被發(fā)送到第二解串行化器235b。這可以都在該讀取的第一半周期發(fā)生。在該讀取的第二半周期期間,模塊115的讀取控制器220可以指引來自偶單端口存儲(chǔ)器120a的第二數(shù)據(jù)對象的第二偶子數(shù)據(jù)對象被發(fā)送到第二解串行化器235b。而且,來自偶單端口存儲(chǔ)器120a的第一數(shù)據(jù)對象的第一奇子數(shù)據(jù)對象可以被發(fā)送到第一解串行化器235a。在第一解串行化器235a處,可以組合第一奇子數(shù)據(jù)對象和第一偶子數(shù)據(jù)對象以向第一讀取請求器輸出第一數(shù)據(jù)對象。在第二解串行化器235b處,可以組合第二偶子數(shù)據(jù)對象與第二奇子數(shù)據(jù)對象以向第二讀取請求器輸出第