避免在單端口存儲(chǔ)器設(shè)備中的寫(xiě)入沖突的方法和芯片的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般地涉及單端口存儲(chǔ)器設(shè)備并且更具體地涉及一種在單端口存儲(chǔ)器設(shè)備中的寫(xiě)入和讀取沖突避免系統(tǒng)。
【背景技術(shù)】
[0002]單端口存儲(chǔ)器設(shè)備僅可以允許一次一個(gè)寫(xiě)入或者讀取操作。單端口存儲(chǔ)器設(shè)備的示例可以包括靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)等。SRAM是易失性存儲(chǔ)器,其中在關(guān)斷向SRAM的功率供應(yīng)時(shí)擦除存儲(chǔ)的任何數(shù)據(jù)。SRAM單元經(jīng)常由六個(gè)晶體管組成。四個(gè)晶體管組成存儲(chǔ)邏輯一或者邏輯零的交叉耦合鎖存器。其它兩個(gè)晶體管用于在讀取和寫(xiě)入操作期間訪問(wèn)SRAM單元。用于SRAM的訪問(wèn)速度與某些其它存儲(chǔ)器比較而言快速,并因此經(jīng)常用作高速緩存存儲(chǔ)器和用于緩沖器。單端口存儲(chǔ)器設(shè)備、諸如SRAM經(jīng)常用作兩個(gè)異步電路之間的緩沖器。
【發(fā)明內(nèi)容】
[0003]在本公開(kāi)的各種實(shí)施例中,描述了一種避免來(lái)自兩個(gè)或者更多獨(dú)立寫(xiě)入操作在單端口存儲(chǔ)器設(shè)備中的寫(xiě)入沖突的方法。模塊從第一數(shù)據(jù)發(fā)送器接收具有第一偶數(shù)據(jù)對(duì)象和第一奇數(shù)據(jù)對(duì)象的第一寫(xiě)入操作。該模塊在與第一寫(xiě)入操作基本上相同的時(shí)間從第二數(shù)據(jù)發(fā)送器接收具有第二偶數(shù)據(jù)對(duì)象和第二奇數(shù)據(jù)對(duì)象的第二寫(xiě)入操作。延遲第二寫(xiě)入操作,使得第一偶數(shù)據(jù)對(duì)象在與第二偶數(shù)據(jù)對(duì)象向第一單端口存儲(chǔ)器設(shè)備進(jìn)行寫(xiě)入不同的時(shí)間向第一單端口存儲(chǔ)器設(shè)備進(jìn)行寫(xiě)入。延遲第二寫(xiě)入操作,使得第一奇數(shù)據(jù)對(duì)象在與第二奇數(shù)據(jù)對(duì)象不同的時(shí)間向第二單端口存儲(chǔ)器設(shè)備進(jìn)行寫(xiě)入。向相應(yīng)的第一單端口存儲(chǔ)器設(shè)備和第二單端口存儲(chǔ)器設(shè)備寫(xiě)入第一偶數(shù)據(jù)對(duì)象和第一奇數(shù)據(jù)對(duì)象。向相應(yīng)的第一單端口存儲(chǔ)器設(shè)備和第二單端口存儲(chǔ)器設(shè)備寫(xiě)入第二偶數(shù)據(jù)對(duì)象和第二奇數(shù)據(jù)對(duì)象。
[0004]在其它各種實(shí)施例中,描述了一種半導(dǎo)體芯片。該半導(dǎo)體芯片包括模塊。該模塊包括被配置為存儲(chǔ)第一偶數(shù)據(jù)對(duì)象和第二偶數(shù)據(jù)對(duì)象的第一單端口存儲(chǔ)器設(shè)備。該模塊還包括被配置為存儲(chǔ)第一奇數(shù)據(jù)對(duì)象和第二奇數(shù)據(jù)對(duì)象的第二單端口存儲(chǔ)器設(shè)備。該模塊被配置為從第一數(shù)據(jù)發(fā)送器接收具有第一偶數(shù)據(jù)對(duì)象和第一奇數(shù)據(jù)對(duì)象的第一寫(xiě)入操作。該模塊還被配置為在與第一寫(xiě)入操作基本上相同的時(shí)間從第二數(shù)據(jù)發(fā)送器接收具有第二偶數(shù)據(jù)對(duì)象和第二奇數(shù)據(jù)對(duì)象的第二寫(xiě)入操作。該模塊可以延遲第二寫(xiě)入操作,使得第一偶數(shù)據(jù)對(duì)象在與第二偶數(shù)據(jù)對(duì)象向第一單端口存儲(chǔ)器設(shè)備進(jìn)行寫(xiě)入不同的時(shí)間向第一單端口存儲(chǔ)器設(shè)備進(jìn)行寫(xiě)入。該模塊還可以延遲第二寫(xiě)入操作,使得第一奇數(shù)據(jù)對(duì)象在與第二奇數(shù)據(jù)對(duì)象不同的時(shí)間向第二單端口存儲(chǔ)器設(shè)備進(jìn)行寫(xiě)入。該模塊可以向相應(yīng)的第一單端口存儲(chǔ)器設(shè)備和第二單端口存儲(chǔ)器設(shè)備寫(xiě)入第一偶數(shù)據(jù)對(duì)象和第一奇數(shù)據(jù)對(duì)象并且向相應(yīng)的第一單端口存儲(chǔ)器設(shè)備和第二單端口存儲(chǔ)器設(shè)備寫(xiě)入第二偶數(shù)據(jù)對(duì)象和第二奇數(shù)據(jù)對(duì)象。
[0005]在更多其它各種實(shí)施例中,描述了一種避免來(lái)自兩個(gè)或者更多獨(dú)立讀取操作請(qǐng)求的從單端口存儲(chǔ)器設(shè)備的讀取沖突的方法。從第一讀取請(qǐng)求器接收對(duì)于第一偶數(shù)據(jù)對(duì)象和第一奇數(shù)據(jù)對(duì)象的第一讀取請(qǐng)求。在與接收第一讀取請(qǐng)求基本上相同的時(shí)間從第二讀取請(qǐng)求器接收對(duì)于第二偶數(shù)據(jù)對(duì)象和第二奇數(shù)據(jù)對(duì)象的第二讀取請(qǐng)求。從第一單端口存儲(chǔ)器設(shè)備讀取第一偶數(shù)據(jù)對(duì)象。在與從第一單端口存儲(chǔ)器設(shè)備讀取第一偶數(shù)據(jù)對(duì)象基本上相同的時(shí)間從第二單端口存儲(chǔ)器設(shè)備讀取第二奇數(shù)據(jù)對(duì)象。從第一單端口存儲(chǔ)器設(shè)備讀取第二偶數(shù)據(jù)對(duì)象。在從第一單端口存儲(chǔ)器設(shè)備讀取第二偶數(shù)據(jù)對(duì)象基本上相同的時(shí)間從第二單端口存儲(chǔ)器設(shè)備讀取第一奇數(shù)據(jù)對(duì)象。
【附圖說(shuō)明】
[0006]將參照附圖從以下具體描述中更好地理解實(shí)施例,在附圖中:
[0007]圖1圖示根據(jù)實(shí)施例的半導(dǎo)體芯片的框圖,在該半導(dǎo)體芯片上,支持單端口存儲(chǔ)器設(shè)備的模塊被配置為避免寫(xiě)入沖突和讀取沖突。
[0008]圖2圖示根據(jù)實(shí)施例的模塊的框圖,單端口存儲(chǔ)器設(shè)備位于該模塊上,并且該模塊被配置為避免在單端口存儲(chǔ)器設(shè)備上的寫(xiě)入和讀取沖突。
[0009]圖3圖示根據(jù)實(shí)施例的通過(guò)圖2的模塊的數(shù)據(jù)對(duì)象流的定時(shí)圖。
[0010]圖4圖示根據(jù)實(shí)施例的用于避免在單端口存儲(chǔ)器設(shè)備中的寫(xiě)入沖突的流程圖。
[0011]圖5圖示根據(jù)實(shí)施例的模塊的框圖,在該模塊上,單端口存儲(chǔ)器設(shè)備被配置為避免數(shù)據(jù)對(duì)象的寫(xiě)入沖突,其中數(shù)據(jù)對(duì)象未被劃分成子數(shù)據(jù)對(duì)象。
[0012]圖6圖示根據(jù)實(shí)施例的發(fā)送寫(xiě)入操作的數(shù)據(jù)發(fā)送器的起動(dòng)邏輯。
[0013]圖7圖示根據(jù)實(shí)施例的通過(guò)諸如圖5的模塊這樣的模塊的數(shù)據(jù)對(duì)象流的定時(shí)圖。
[0014]圖8圖示根據(jù)實(shí)施例的用于在模塊、諸如圖5的模塊中避免在單端口存儲(chǔ)器設(shè)備中的寫(xiě)入沖突的方法的流程圖。
[0015]圖9圖示根據(jù)各種實(shí)施例的用于圖5的模塊的讀取操作電路。
【具體實(shí)施方式】
[0016]在附圖中圖示的特征未必按比例繪制。省略對(duì)熟知的部件和處理技術(shù)的描述以免不必要地模糊公開(kāi)的實(shí)施例。對(duì)實(shí)施例的描述僅通過(guò)示例來(lái)提供而不旨在于限制本發(fā)明要求保護(hù)的范圍。相同編號(hào)可以在附圖和【具體實(shí)施方式】中用來(lái)指代相同設(shè)備、部分、部件、步驟、操作等。
[0017]這里的實(shí)施例提供了一種用于避免來(lái)自兩個(gè)或者更多數(shù)據(jù)對(duì)象發(fā)送器的單端口存儲(chǔ)器設(shè)備寫(xiě)入沖突的半導(dǎo)體芯片和方法,該兩個(gè)或者更多數(shù)據(jù)對(duì)象發(fā)送器執(zhí)行可以在相同時(shí)間發(fā)生、從而導(dǎo)致寫(xiě)入沖突的寫(xiě)入操作。避免寫(xiě)入沖突可以通過(guò)將寫(xiě)入操作的數(shù)據(jù)對(duì)象劃分成兩個(gè)或者更多子數(shù)據(jù)對(duì)象來(lái)完成。該劃分可以對(duì)于每個(gè)寫(xiě)入操作而發(fā)生,并且寫(xiě)入操作的每個(gè)子數(shù)據(jù)對(duì)象可以具有專用單端口存儲(chǔ)器設(shè)備。每個(gè)專用單端口存儲(chǔ)器設(shè)備可以存儲(chǔ)來(lái)自每個(gè)寫(xiě)入操作的子數(shù)據(jù)對(duì)象類型。這允許在相同時(shí)間到達(dá)單端口存儲(chǔ)器設(shè)備的寫(xiě)入操作在與來(lái)自第二寫(xiě)入操作的第二類型子數(shù)據(jù)對(duì)象向第二單端口存儲(chǔ)器設(shè)備寫(xiě)入相同的時(shí)間向第一單端口存儲(chǔ)器設(shè)備寫(xiě)入來(lái)自第一寫(xiě)入操作的第一類型子數(shù)據(jù)對(duì)象。在實(shí)施例中,可以如通過(guò)使第一單端口存儲(chǔ)器設(shè)備專用于偶數(shù)據(jù)對(duì)象和使第二單端口存儲(chǔ)器設(shè)備專用于奇數(shù)據(jù)對(duì)象來(lái)防止在相同單端口存儲(chǔ)器設(shè)備上的寫(xiě)入沖突這樣的目的所必需的那樣來(lái)對(duì)準(zhǔn)(align)和延遲數(shù)據(jù)對(duì)象。
[0018]其它實(shí)施例包括在基本上相同時(shí)間向第一單端口存儲(chǔ)器存儲(chǔ)偶數(shù)據(jù)對(duì)象和向第二單端口存儲(chǔ)器存儲(chǔ)奇數(shù)據(jù)對(duì)象。可以在向單端口存儲(chǔ)器存儲(chǔ)時(shí)對(duì)來(lái)自兩個(gè)或者更多發(fā)送器的偶和奇數(shù)據(jù)對(duì)象進(jìn)行交織從而不會(huì)產(chǎn)生寫(xiě)入沖突。這里的更多其它實(shí)施例提供了一種用于避免兩個(gè)或者更多讀取請(qǐng)求器從單端口存儲(chǔ)器的單端口存儲(chǔ)器讀取的沖突的半導(dǎo)體芯片和方法。
[0019]在用于單端口存儲(chǔ)器設(shè)備的某些讀取/寫(xiě)入環(huán)境中,寫(xiě)入沖突可能發(fā)生。寫(xiě)入沖突可能在兩個(gè)或者更多寫(xiě)入操作在基本上相同時(shí)間到達(dá)單端口存儲(chǔ)器設(shè)備中時(shí)發(fā)生。寫(xiě)入沖突可能在操作嘗試被執(zhí)行時(shí)產(chǎn)生錯(cuò)誤。單端口存儲(chǔ)器設(shè)備可以接收兩個(gè)或者更多寫(xiě)入操作,因?yàn)樗鼈兛梢詮墓蚕韱味丝诖鎯?chǔ)器設(shè)備的資源的兩個(gè)或者更多獨(dú)立源接收寫(xiě)入操作。共享單端口存儲(chǔ)器設(shè)備可能由于多個(gè)原因、諸如為了減少的功率和大小限制而具有優(yōu)勢(shì)。
[0020]不僅可能在單端口存儲(chǔ)器設(shè)備中存在寫(xiě)入沖突而且讀取沖突也可能發(fā)生。讀取沖突可能在存在多個(gè)讀取請(qǐng)求器在基本上相同時(shí)間請(qǐng)求來(lái)自共享單端口存儲(chǔ)器的數(shù)據(jù)對(duì)象時(shí)發(fā)生。讀取沖突也可能在操作嘗試被執(zhí)行時(shí)產(chǎn)生錯(cuò)誤。
[0021]本公開(kāi)的方面基于可以通過(guò)使用多端口存儲(chǔ)器來(lái)解決在單端口存儲(chǔ)器設(shè)備中的寫(xiě)入沖突這樣的認(rèn)識(shí),該多端口存儲(chǔ)器允許在相同時(shí)間向存儲(chǔ)器的多于一行進(jìn)行寫(xiě)入。每個(gè)寫(xiě)入操作源可以具有專用寫(xiě)入端口,這將允許在相同時(shí)間向存儲(chǔ)器的不同行進(jìn)行寫(xiě)入。然而,多端口存儲(chǔ)器可能在功率、面積、可測(cè)試性、產(chǎn)量和開(kāi)發(fā)工作方面比單端口存儲(chǔ)器設(shè)備更昂貴。對(duì)于避免在單端口存儲(chǔ)器設(shè)備中的寫(xiě)入沖突的另一認(rèn)識(shí)是在存在來(lái)自獨(dú)立源的多個(gè)寫(xiě)入操作時(shí)使用兩倍之多的單端口存儲(chǔ)器設(shè)備。每個(gè)源將獲得它自己的專用單端口存儲(chǔ)器設(shè)備集合。附加控制邏輯可以用來(lái)保持對(duì)哪些寫(xiě)入源擁有實(shí)際單端口存儲(chǔ)器設(shè)備的跟蹤。倍增單端口存儲(chǔ)器設(shè)備數(shù)量也在功率、面積和產(chǎn)量方面倍增成本。這些認(rèn)識(shí)還設(shè)想由于它們的避免寫(xiě)入沖突的性質(zhì)(多端口和倍增的單端口存儲(chǔ)器設(shè)備數(shù)量)而避免讀取沖突。
[0022]其中寫(xiě)入沖突可能在單端口存儲(chǔ)器設(shè)備中發(fā)生的情形的示例在計(jì)算機(jī)處理器芯片或者其它半導(dǎo)體芯片上。在處理器芯片、諸如三級(jí)(L3)高速緩存上的數(shù)據(jù)發(fā)送器(這里也稱為寫(xiě)入源)可以被拆分成兩個(gè),這允許來(lái)自兩個(gè)獨(dú)立寫(xiě)入源、例如第一 L3高速緩存和第二 L3高速緩存的第一寫(xiě)入操作和第二寫(xiě)入操作。拆分的L3高速緩存可以連接到包含單端口存儲(chǔ)器設(shè)備的模塊、諸如PCI橋控制器。PCI橋控制器可以包括用于每個(gè)I/O獲取(fetch)有限狀態(tài)機(jī)(FSM)的專用緩沖器,該FSM從L3高速緩存獲取數(shù)據(jù)對(duì)象。每個(gè)緩沖器可以具有256字節(jié)的容量。緩沖器不會(huì)立刻都被寫(xiě)入,而是按4:1周期以16字節(jié)被寫(xiě)入。可以在示例模塊中存在共計(jì)32個(gè)緩沖器。出于高效功率和面積原因,多個(gè)緩沖器可以共享單端口存儲(chǔ)器設(shè)備、諸如SRM或者DRAM。四個(gè)緩沖器可以在用于所使用的共計(jì)八個(gè)SRAM的每個(gè)SRAM中。在SRAM內(nèi)的緩沖器可以與針對(duì)通過(guò)拆分而創(chuàng)建的L3高速緩存中的每個(gè)L3高速緩存的獲取關(guān)聯(lián)。兩個(gè)L3高速緩存是獨(dú)立的,并且具有數(shù)據(jù)對(duì)象的響應(yīng)可以在任何時(shí)間到達(dá)。在針對(duì)共享相同單端口