專利名稱:寄存器讀取機(jī)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的至少某些實(shí)施例涉及對(duì)集成電路中的控制寄存器的讀取訪問(wèn)。
技術(shù)背景寄存器式雙列直插存儲(chǔ)器模塊寄存器式DIMM (RDIMM)對(duì)雙列直插存儲(chǔ) 器模塊寄存器式DIMM (DIMM)上的地址和控制線進(jìn)行緩沖以減少信號(hào)負(fù)載。 可將SSTE32882寄存時(shí)鐘驅(qū)動(dòng)器設(shè)計(jì)為寄存器式緩沖器,以驅(qū)動(dòng)用于DDR3(雙 倍數(shù)據(jù)速率3) RDIMM應(yīng)用的地址和控制線。聯(lián)合電子裝置工程協(xié)會(huì)(JEDEC)提供界定用于SSTE32882的許多可配置 寄存器(控制字)的標(biāo)準(zhǔn),例如"JEDEC standard (proposed), Definition of the SSTE32882 Registering Clock Driver with Parity for DDR3 RDIMM Applkations"??刂谱挚捎糜趦?yōu)化用于不同應(yīng)用的寄存時(shí)鐘驅(qū)動(dòng)器的操作。舉例 來(lái)說(shuō),基于寄存器的設(shè)定,寄存時(shí)鐘驅(qū)動(dòng)器可改變其例如計(jì)時(shí)、驅(qū)動(dòng)強(qiáng)度和時(shí) 滯等輸出特性,以匹配不同的DIMM網(wǎng)絡(luò)拓?fù)洹STE32882寄存時(shí)鐘驅(qū)動(dòng)器具有十六個(gè)控制字。控制字0到5的功能由 JEDEC標(biāo)準(zhǔn)界定,且控制字8到15經(jīng)保留以供未來(lái)使用。控制字6和7是廠商 指定的。JEDEC標(biāo)準(zhǔn)界定了用于這些控制字的寫入操作,但未提供用于控制字 的讀取操作。發(fā)明內(nèi)容本文描述一種集成電路已擴(kuò)展一組定制寄存器和用于控制寄存器的讀取機(jī)構(gòu)。在此部分中概述某些實(shí)施例。在本發(fā)明的一個(gè)實(shí)施例中,所述一種電路,其包含第一組寄存器;第二組 寄存器,其與所述第一組寄存器耦合,將通過(guò)定址到所述第一組中的一個(gè)或一 個(gè)以上寄存器的一個(gè)或一個(gè)以上寫入操作來(lái)對(duì)所述第二組寄存器進(jìn)行寫入;和 讀取控制器,其與所述第一和第二組寄存器耦合,所述讀取控制器基于存儲(chǔ)在 所述第二組中的一個(gè)或一個(gè)以上寄存器中的數(shù)據(jù)選擇性地輸出存儲(chǔ)在所述第一 和第二組寄存器中的數(shù)據(jù)的一部分。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述電路集成在芯片上。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述電路包含集成在所述芯片 上的寄存時(shí)鐘驅(qū)動(dòng)器。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述寄存時(shí)鐘驅(qū)動(dòng)器是根據(jù)聯(lián) 合電子裝置工程協(xié)會(huì)(JEDEC)標(biāo)準(zhǔn)。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述寄存時(shí)鐘驅(qū)動(dòng)器是根據(jù)用 于DDR3 (雙倍數(shù)據(jù)速率3) RDIMM (寄存器式雙列直插存儲(chǔ)器模塊)應(yīng)用的 具有奇偶性的SSTE32882寄存時(shí)鐘驅(qū)動(dòng)器的聯(lián)合電子裝置工程協(xié)會(huì)(JEDEC) 標(biāo)準(zhǔn)。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其進(jìn)一步包含邏輯塊;和多路復(fù) 用器,其與所述邏輯塊、所述讀取控制器和所述第二組寄存器耦合,所述多路 復(fù)用器基于存儲(chǔ)在所述第二組中的所述一個(gè)或一個(gè)以上寄存器中的數(shù)據(jù)來(lái)從所 述邏輯塊的輸出和所述讀取控制器的輸出中進(jìn)行選擇以作為所述電路的輸出。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述邏輯塊產(chǎn)生用以指示是否已發(fā)生奇偶性錯(cuò)誤的輸出,且當(dāng)對(duì)所述第一組中的一個(gè)寄存器進(jìn)行寫入時(shí)所述 讀取控制器根據(jù)存儲(chǔ)在所述第二組寄存器中的一者中的數(shù)據(jù)來(lái)從所述第一和第 二組寄存器中的一者中讀取一位。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中由所述讀取控制器讀取的所述 一位是來(lái)自所述第一組的正根據(jù)輸入數(shù)據(jù)進(jìn)行寫入的寄存器。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中在根據(jù)所述輸入數(shù)據(jù)對(duì)所述寄 存器進(jìn)行寫入之前由所述讀取控制器讀取所述一位。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中當(dāng)所述第二組中的寄存器的第 一位處于第一狀態(tài)時(shí),所述多路復(fù)用器選擇所述邏輯塊的輸出;當(dāng)所述第二組 中的所述寄存器的所述第一位處于第二狀態(tài)時(shí),所述多路復(fù)用器選擇所述讀取控制器的輸出。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述第一組寄存器包含第一 多個(gè)寄存器,用以根據(jù)標(biāo)準(zhǔn)來(lái)存儲(chǔ)數(shù)據(jù)以控制所述電路的操作;和第二多個(gè)寄 存器,用以存儲(chǔ)廠商指定的數(shù)據(jù)以控制所述電路的操作。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述用以存儲(chǔ)廠商指定數(shù)據(jù)的 第二多個(gè)寄存器包括第一寄存器和第二寄存器,所述第一寄存器存儲(chǔ)用于從所 述第二組選擇一寄存器群組的數(shù)據(jù),所述第二寄存器接收識(shí)別所述選定群組中 的一個(gè)或一個(gè)以上位的第一數(shù)據(jù),以及將被寫入根據(jù)所述第一數(shù)據(jù)所識(shí)別的所 述一個(gè)或一個(gè)以上位中的第二數(shù)據(jù),響應(yīng)于被寫入的所述第二寄存器而將所述 第二數(shù)據(jù)寫入所述第二組中的所述選定的寄存器群組的所述一個(gè)或一個(gè)以上位 中。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中當(dāng)所述第一位處于所述第二狀 態(tài)中時(shí),在將所述第二數(shù)據(jù)寫入所述經(jīng)識(shí)別的一個(gè)或一個(gè)以上位之前,由所述 讀取控制器讀取根據(jù)所述第一數(shù)據(jù)所識(shí)別的所述一個(gè)或一個(gè)以上位中所存儲(chǔ)的 數(shù)據(jù),以便使所述多路復(fù)用器進(jìn)行選擇。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中當(dāng)所述第一位處于所述第二狀 態(tài)時(shí),如果所述經(jīng)識(shí)別的一個(gè)或一個(gè)以上位不包括所述第一位,便將根據(jù)所述 第一數(shù)據(jù)所識(shí)別的所述一個(gè)或一個(gè)以上位中所存儲(chǔ)的數(shù)據(jù)重新寫回所述經(jīng)識(shí)別 的一個(gè)或一個(gè)以上位中;且當(dāng)所述第一位處于所述第一狀態(tài)時(shí),將所述第二數(shù) 據(jù)寫入所述經(jīng)識(shí)別的一個(gè)或一個(gè)以上位中。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述第二組中的所述寄存器的 一個(gè)或一個(gè)以上第二位存儲(chǔ)識(shí)別所述第一組中的寄存器的一個(gè)或一個(gè)以上位的 數(shù)據(jù);當(dāng)所述第一位處于所述第二狀態(tài)時(shí),在對(duì)所述第一組中的所述寄存器進(jìn) 行寫入之前由所述讀取控制器讀取根據(jù)所述一個(gè)或一個(gè)以上第二位所識(shí)別的所 述一個(gè)或一個(gè)以上位中所存儲(chǔ)的數(shù)據(jù),以便使所述多路復(fù)用器進(jìn)行選擇。在本發(fā)明的一個(gè)實(shí)施例中,所述的電路,其中所述第二組中的所述寄存器的一個(gè)或一個(gè)以上第二位存儲(chǔ)識(shí)別所述第一組中的寄存器的一個(gè)或一個(gè)以上位的數(shù)據(jù);當(dāng)所述第一位處于所述第二狀態(tài)時(shí),當(dāng)所述電路接收輸入以寫入所述第一組中的所述寄存器中時(shí),由所述讀取控制器將存儲(chǔ)在所述第一組中的所述寄存器中的數(shù)據(jù)重新寫回所述第一組中的所述寄存器中。在本發(fā)明的一個(gè)實(shí)施例中,所述一種集成電路,其包含多個(gè)寄存器;和讀取控制器,其與所述多個(gè)寄存器耦合,當(dāng)所述電路接收輸入以寫入第一寄存器 中時(shí),所述讀取控制器輸出存儲(chǔ)在所述多個(gè)寄存器中的第一寄存器中的數(shù)據(jù)的 一部分,將根據(jù)存儲(chǔ)在所述多個(gè)寄存器中的第二寄存器中的數(shù)據(jù)來(lái)選擇所述部分。在本發(fā)明的一個(gè)實(shí)施例中,所述的集成電路,其進(jìn)一步包含邏輯塊;和多 路復(fù)用器,其耦合到所述讀取控制器和所述邏輯塊;其中當(dāng)所述第二寄存器的 位處于第一狀態(tài)時(shí),所述多路復(fù)用器選擇邏輯塊;且當(dāng)所述第二寄存器的所述 位處于第二狀態(tài)時(shí),所述多路復(fù)用器選擇所述讀取控制器。在本發(fā)明的一個(gè)實(shí)施例中,所述一種集成電路,其包含第一組寄存器,其 包括第一寄存器和第二寄存器;和第二組寄存器,其與所述第一組寄存器耦合, 所述第二組中的一寄存器群組將由存儲(chǔ)在所述第一寄存器中的數(shù)據(jù)識(shí)別,所述 群組的一個(gè)或一個(gè)以上位將由存儲(chǔ)在所述第二寄存器中的數(shù)據(jù)的一部分識(shí)別; 其中響應(yīng)于正被寫入的所述第二寄存器,將寫入所述第二寄存器中的數(shù)據(jù)的一 部分進(jìn)一步寫入由存儲(chǔ)在所述第一和第二寄存器中的數(shù)據(jù)識(shí)別的所述群組的所 述一個(gè)或一個(gè)以上位中。在本發(fā)明的一個(gè)實(shí)施例中,所述的集成電路,其進(jìn)一步包含邏輯塊,其用 以檢査奇偶性錯(cuò)誤;讀取控制器,其用以當(dāng)所述集成電路接收輸入以寫入所述 第一組和第二組中的寄存器中時(shí)讀出所述第一組和第二組中的所述寄存器的至 少一部分;和多路復(fù)用器,其耦合到所述讀取控制器和所述邏輯塊;其中當(dāng)所 述第二組寄存器的位處于第一狀態(tài)時(shí),所述多路復(fù)用器選擇所述邏輯塊;且當(dāng) 所述第二組寄存器的所述位處于第二狀態(tài)時(shí),所述多路復(fù)用器選擇所述讀取控 制器。
在附圖的圖式中以實(shí)例方式且不加限制地來(lái)說(shuō)明實(shí)施例,附圖中相同的參 考符號(hào)指示類似的元件。圖1說(shuō)明具有一組控制寄存器的集成電路芯片。圖2說(shuō)明根據(jù)一個(gè)實(shí)施例的具有擴(kuò)展的定制寄存器的集成電路芯片。圖3說(shuō)明根據(jù)一個(gè)實(shí)施例的具有用于控制寄存器的讀取機(jī)構(gòu)的集成電路芯片。圖4說(shuō)明根據(jù)一個(gè)實(shí)施例的具有擴(kuò)展的定制寄存器和用于控制寄存器的讀 取機(jī)構(gòu)的集成電路芯片。圖5說(shuō)明根據(jù)一個(gè)實(shí)施例的對(duì)控制寄存器和定制寄存器進(jìn)行定址的方案。
具體實(shí)施方式
以下描述和圖式是說(shuō)明性的而不是限制性的。描述許多特定細(xì)節(jié)以提供徹 底的理解。然而,在某些情況下,為避免混淆本發(fā)明而沒(méi)有描述眾所周知的或 常規(guī)的細(xì)節(jié)。對(duì)本發(fā)明中一個(gè)實(shí)施例的參考不一定是對(duì)同一實(shí)施例的參考,且 這種參考表示至少一個(gè)。用于具有奇偶性的SSTE32882寄存時(shí)鐘驅(qū)動(dòng)器的JEDEC標(biāo)準(zhǔn)界定了對(duì)驅(qū)動(dòng) 器的寄存器的寫入操作,但沒(méi)有提供對(duì)寄存器的讀取訪問(wèn)。在一個(gè)實(shí)施例中,認(rèn)識(shí)到對(duì)控制寄存器的讀取操作可用于設(shè)計(jì)工程,尤其 是在測(cè)試或調(diào)試裝置時(shí)。因此,開(kāi)發(fā)一種寄存時(shí)鐘驅(qū)動(dòng)器以包括在JEDEC標(biāo)準(zhǔn) 限制內(nèi)對(duì)讀取操作的支持。通過(guò)讀取機(jī)構(gòu),設(shè)計(jì)工程師可獲得裝置的操作狀態(tài) 以幫助在調(diào)試期間找出錯(cuò)誤。在一個(gè)實(shí)施例中,在用于DDRRDIMM應(yīng)用的具有奇偶性的寄存時(shí)鐘驅(qū)動(dòng) 器中提供一種寄存器讀取機(jī)構(gòu)。所述讀取機(jī)構(gòu)允許主機(jī)讀出存儲(chǔ)在根據(jù)用于 SSTE32882寄存時(shí)鐘驅(qū)動(dòng)器的JEDEC標(biāo)準(zhǔn)而設(shè)計(jì)的寄存時(shí)鐘驅(qū)動(dòng)器的控制字寄 存器中的數(shù)據(jù)。此機(jī)構(gòu)實(shí)現(xiàn)了對(duì)時(shí)鐘驅(qū)動(dòng)器的狀態(tài)監(jiān)視而不用改變其現(xiàn)有的引 腳輸出。在一個(gè)實(shí)施例中,廠商指定的寄存器(控制字)用于對(duì)擴(kuò)展的定制寄存器 進(jìn)行定址,所述擴(kuò)展定制寄存器可經(jīng)配置以實(shí)現(xiàn)對(duì)寄存器(包括控制字和擴(kuò)展 的定制寄存器)的讀取操作。在一個(gè)實(shí)施例中,設(shè)計(jì)一種讀取機(jī)構(gòu)以使用寫入命令來(lái)對(duì)待讀取的相應(yīng)寄 存器進(jìn)行定址,并使用SSTE32882寄存時(shí)鐘驅(qū)動(dòng)器的現(xiàn)有引腳來(lái)輸出結(jié)果???在不對(duì)SSTE32882寄存時(shí)鐘驅(qū)動(dòng)器的引腳配置作任何改變的情況下實(shí)施此讀取 機(jī)構(gòu)。在一個(gè)實(shí)施例中,通過(guò)寫入命令來(lái)觸發(fā)對(duì)寄存時(shí)鐘驅(qū)動(dòng)器的寄存器的讀 取操作,以最小化對(duì)主機(jī)軟件的修改。由于JEDEC標(biāo)準(zhǔn)已嚴(yán)格界定SSTE32882的引腳輸出,因此基于未添加額外 引腳的當(dāng)前現(xiàn)有輸入和輸出墊來(lái)實(shí)施所述讀取機(jī)構(gòu)。在一個(gè)實(shí)施例中,當(dāng)設(shè)定擴(kuò)展的定制寄存器的一個(gè)位以啟用讀取操作時(shí), 用于奇偶性錯(cuò)誤的輸出引腳用于輸出讀取操作的結(jié)果。因此,在讀取模式中通 過(guò)現(xiàn)有的輸出引腳可以每次一位地讀取控制字和擴(kuò)展的定制寄存器中的數(shù)據(jù)。在一個(gè)實(shí)施例中,廠商指定的控制字6和7用于對(duì)多達(dá)128位的定制寄存 器堆進(jìn)行定址,所述寄存器堆可用于界定廠商指定的控制字,包括用于啟用/禁 用讀取操作符的控制位和寄存器偏移位,以從待讀取的控制字中選擇一個(gè)位以 便通過(guò)用于奇偶性錯(cuò)誤的引腳進(jìn)行輸出。在一個(gè)實(shí)施例中,在時(shí)鐘驅(qū)動(dòng)器內(nèi)提供集成的溫度傳感器。通過(guò)使用寄存 器讀取機(jī)構(gòu),設(shè)計(jì)工程師可讀出裝置的當(dāng)前溫度。舉例來(lái)說(shuō),當(dāng)前溫度可存儲(chǔ) 在用戶寄存器堆中,且可通過(guò)用于奇偶性錯(cuò)誤的輸出引腳每次讀出一位。本文揭示的技術(shù)也可在其它集成電路中使用以提供經(jīng)由寫入操作的讀取機(jī)構(gòu)。圖l說(shuō)明具有一組控制寄存器(19)的集成電路芯片(11)。集成電路芯片 (11)具有邏輯塊(17),其可響應(yīng)于從引腳(13)接收到的輸入而經(jīng)由引腳(15) 產(chǎn)生輸出。集成電路芯片(11)接受寫入命令以將控制字存儲(chǔ)在寄存器(19) 中??刂谱挚捎糜趦?yōu)化集成電路芯片(11)的操作以用于各種不同的應(yīng)用。舉例來(lái)說(shuō),集成電路芯片(11)可為根據(jù)JEDEC標(biāo)準(zhǔn)的SSTE32882寄存時(shí) 鐘驅(qū)動(dòng)器,其中邏輯塊(17)產(chǎn)生奇偶性錯(cuò)誤的指示符。一個(gè)實(shí)施例通過(guò)用于控制寄存器(19)中的一個(gè)或一個(gè)以上寄存器的寫入 操作來(lái)擴(kuò)展集成電路芯片(11),而不用改變輸入/輸出協(xié)議且不添加額外引腳。圖2說(shuō)明根據(jù)一個(gè)實(shí)施例的具有擴(kuò)展的定制寄存器的集成電路芯片。在圖2 中,使用間接的寄存器定址方案來(lái)擴(kuò)展可用的寄存器,而不用改變用于控制字 的解碼方案。在圖2中,使用控制寄存器(19)中的一個(gè)或一個(gè)以上寄存器來(lái) 接收地址和數(shù)據(jù)值,以便寫入擴(kuò)展寄存器(21)中。舉例來(lái)說(shuō),響應(yīng)于被定址到廠商指定寄存器的寫入命令,寫入廠商指定寄 存器中的數(shù)據(jù)可用作輸入數(shù)據(jù)和/或地址數(shù)據(jù),以寫入擴(kuò)展的寄存器(21)中。 在一個(gè)實(shí)施例中,另一廠商指定寄存器可用于存儲(chǔ)輸入數(shù)據(jù)和/或地址數(shù)據(jù)的一 部分,以用于擴(kuò)展寄存器的寫入操作。當(dāng)寄存器(19)的n位用作地址數(shù)據(jù)且寄存器(19)的m位用作輸入數(shù)據(jù) 時(shí),(n+m)位可用于寫入擴(kuò)展寄存器的n^2An個(gè)位。在一個(gè)實(shí)施例中,擴(kuò)展寄存器用于存儲(chǔ)用于啟用讀取操作的數(shù)據(jù)。或者,控制寄存器(19)也可用于存儲(chǔ)用于啟用讀取操作的數(shù)據(jù)。圖3說(shuō)明根據(jù)一個(gè)實(shí)施例的具有用于控制寄存器的讀取機(jī)構(gòu)的集成電路芯 片。在圖3中,重新使用用于邏輯塊(17)的輸出端口以發(fā)出從目標(biāo)寄存器讀 取的數(shù)據(jù),以避免添加新的墊。舉例來(lái)說(shuō),控制寄存器(19)的一位(例如, 廠商指定寄存器的一位)可用作read—enable位,其用于控制多路復(fù)用器(23) 來(lái)選擇邏輯塊(17)的輸出或讀取控制器(25)的輸出。舉例來(lái)說(shuō),在一個(gè)實(shí)施例中,當(dāng)將read—enable位設(shè)定為1時(shí),多路復(fù)用器 (23)經(jīng)配置以選擇邏輯塊(17);且當(dāng)將read_enable位設(shè)定為0時(shí),多路復(fù) 用器(23)經(jīng)配置以選擇讀取控制器(25)。在一個(gè)實(shí)施例中,讀取控制器(25)經(jīng)配置以在寫入命令被接收以寫入寄 存器時(shí)讀取寄存器。在一個(gè)實(shí)施例中,在將輸入數(shù)據(jù)寫入寄存器之前,由讀取 控制器(25)讀取數(shù)據(jù)。在另一實(shí)施例中,當(dāng)設(shè)定read—enable位以啟用讀取操 作時(shí),不將輸入數(shù)據(jù)寫入寄存器?;蛘?,當(dāng)設(shè)定read一enable位以啟用讀取操作 時(shí),忽略輸入數(shù)據(jù)并將從寄存器讀取的數(shù)據(jù)重新寫入寄存器。在一個(gè)實(shí)施例中, 控制寄存器的一位可用于指示當(dāng)設(shè)定read一enable位以啟用讀取操作時(shí)是否根據(jù) 輸入數(shù)據(jù)來(lái)寫入控制寄存器。在一個(gè)實(shí)施例中,控制寄存器比用于邏輯塊(17)的輸出寬度寬。存儲(chǔ)在 一個(gè)寄存器中的可被寫入一個(gè)寫入命令中的數(shù)據(jù)具有比邏輯塊(17)的輸出多 的位。因此, 一個(gè)或一個(gè)以上偏移位可用于從控制寄存器選擇位的子集,以便 通過(guò)用于邏輯塊(17)的輸出引腳進(jìn)行輸出。舉例來(lái)說(shuō),當(dāng)邏輯塊(17)產(chǎn)生單個(gè)位的輸出(例如,奇偶性錯(cuò)誤指示符) 時(shí),廠商指定寄存器中的一者可經(jīng)配置以具有偏移位,以從控制字中選擇所需 的位,以便通過(guò)邏輯塊(17)的輸出引腳進(jìn)行輸出。圖4說(shuō)明根據(jù)一個(gè)實(shí)施例的具有擴(kuò)展定制寄存器和用于控制寄存器的讀取 機(jī)構(gòu)的集成電路芯片。在圖4中,控制寄存器(19)中的一者或一者以上用于 定址數(shù)據(jù)并將其寫入擴(kuò)展寄存器(21)。擴(kuò)展寄存器(21)的一部分用于促進(jìn)讀 取操作。舉例來(lái)說(shuō),擴(kuò)展寄存器(21)的一位用作read—enable位。當(dāng)控制寄存器的 寬度比邏輯塊(17)的輸出寬時(shí),擴(kuò)展寄存器(21)的一個(gè)或一個(gè)以上位可用作偏移位?;蛘?,可使用有限狀態(tài)機(jī)(例如,計(jì)數(shù)器)來(lái)自動(dòng)調(diào)節(jié)偏移。舉例來(lái)說(shuō),在當(dāng)前讀取的寄存器不同于先前讀取操作的寄存器時(shí),計(jì)數(shù)器可經(jīng)設(shè)定以指向 控制字的第一位。在讀取操作之后,計(jì)數(shù)器將具有指向控制字的下一位的值。 因此,通過(guò)在啟用讀取操作時(shí)重復(fù)發(fā)送寫入命令到同一寄存器,可循序讀出控 制字的不同位,而不必發(fā)送寫入命令來(lái)更新偏移位。圖5說(shuō)明根據(jù)一個(gè)實(shí)施例的對(duì)控制寄存器和定制寄存器進(jìn)行定址的方案。 在圖5中,寄存器堆A (31)含有多個(gè)控制寄存器,包括用于控制字I和控制字 J的寄存器(33和35)。寄存器堆B含有多個(gè)定制寄存器(43),包括"讀取啟 用"位。 -在一個(gè)實(shí)施例中,可經(jīng)由集成電路芯片中接收到的寫入命令直接寫入寄存 器堆A (31)中的寄存器。寄存器中的控制字I和J (33和35)是廠商指定的 控制字,其可用于擴(kuò)展寄存器堆A (31)。在圖5中,每一控制字具有4位。在其它實(shí)施例中,控制字可能具有更多 或更少的位(例如,l位、2位、16位等)。在圖5中,控制字的八位中的七位 用作用于寄存器堆B (41)的地址數(shù)據(jù),且控制字的八位中的一位用作輸入數(shù) 據(jù),用于寫入寄存器堆B (41)。在一個(gè)實(shí)施例中,響應(yīng)于接收到含有用于寄存器堆B (41)的輸入數(shù)據(jù)的 控制字I (35),對(duì)控制字I (33)和控制字J (35)進(jìn)行組合以產(chǎn)生地址數(shù)據(jù), 用于從寄存器堆B (41)中選擇一位,且將控制字;i (35)中提供的數(shù)據(jù)寫入所 選定的位中?;蛘?,可首先將控制字J (35)寫入寄存器堆A (31);且響應(yīng)于 將控制字I (33)寫入寄存器堆A (31)而將存儲(chǔ)在控制字J (35)中的數(shù)據(jù)寫 入寄存器堆B (41)。在一個(gè)實(shí)施例中,寄存器堆B(41)中的每一寄存器具有一位。寄存器堆B (41)中的寄存器(43)經(jīng)分組以使得每一群組具有8個(gè)寄存器??刂谱諭 (33) 的四位用于從16個(gè)群組中選擇一個(gè)群組;且控制字J(35)的三位可用于從選 定群組的8個(gè)寄存器中選擇一個(gè)寄存器。因此,控制字(33和35)可用于定址 寄存器堆B (41)中的多達(dá)128個(gè)一位寄存器。因此,舉例來(lái)說(shuō),為對(duì)寄存器堆B (41)中的寄存器位進(jìn)行編程,可將控 制字I (33)首先寫入寄存器堆A (31),以指定用于選擇群組的數(shù)據(jù),且接著, 可將控制字J(35)寫入寄存器堆A(31),以提供用于從由控制字I (33)中的 數(shù)據(jù)識(shí)別的群組中選擇目的地寄存器位的地址位。其使用兩個(gè)寫入命令來(lái)編程 寄存器位。在另一實(shí)例中,為編程特定寄存器群組中的所有位,可將控制字I(33)首 先寫入寄存器堆A (31),以指定用于選擇群組的數(shù)據(jù),且接著,可將控制字J (35)隨后寫入寄存器堆A (31)八次,以編程特定寄存器群組的八個(gè)位。其 使用九個(gè)寫入命令來(lái)編程寄存器群組。通過(guò)使用此方法,可使用144個(gè)寫入命 令來(lái)編程寄存器堆B (41)的128位?;蛘?,可針對(duì)輸入數(shù)據(jù)分配控制字(33和35)中較多位,且控制字(33 和35)的較少位可用于定址寄存器堆B (41)。舉例來(lái)說(shuō),控制字(33和35) 中的6位可用于定址多達(dá)64個(gè)兩位寄存器,控制字(33和35)中的5位可用 于定址多達(dá)32個(gè)三位寄存器,控制字(33和35)中的4位可用于定址多達(dá)16 個(gè)四位寄存器,等等。舉例來(lái)說(shuō),可用80個(gè)寫入指令編程64個(gè)兩位寄存器,可用48個(gè)寫入指令 編程32個(gè)三位寄存器,且可用32個(gè)寫入指令編程16個(gè)四位寄存器。在圖5中,寄存器堆B (41)包括一個(gè)"讀取啟用"位以指示集成電路芯 片是否處于讀取模式。當(dāng)在讀取模式中時(shí),集成電路芯片使用讀取控制器(例 如,圖4中的25)和多路復(fù)用器(例如,圖4中的23)來(lái)輸出從寄存器堆A(31) 中由寫入命令定址的寄存器讀取的數(shù)據(jù),此時(shí)寫入命令不導(dǎo)致對(duì)寄存器堆B(41) 的寫入操作。在一個(gè)實(shí)施例中,通過(guò)一位輸出通道(例如,用于輸出奇偶性錯(cuò)誤的引腳) 提供從讀取操作獲得的數(shù)據(jù)。因此,寄存器堆B (41)進(jìn)一步配置有兩個(gè)偏移 位,以從自寄存器A讀取的控制字中選擇一位,以通過(guò)所述一位輸出通道進(jìn)行輸出。舉例來(lái)說(shuō),在經(jīng)由用于控制字(33和35)的寫入命令來(lái)將"讀取啟用"位 設(shè)定為讀取模式并編程"偏移位0"和"偏移位1"之后,通過(guò)發(fā)送寫入命令以 寫入四位寄存器可讀取寄存器堆A (31)中的由寄存器堆B (41)中的"偏移 位0"和"偏移位1"選擇的四位寄存器的位。在一個(gè)實(shí)施例中,當(dāng)將"讀取啟用"位設(shè)定為讀取模式時(shí),定址到不同于 控制字I和J (33和35)的寄存器的寫入命令促使電路在將輸入數(shù)據(jù)寫入經(jīng)定 址的寄存器之前首先從寄存器讀出數(shù)據(jù)。在一個(gè)實(shí)施例中,偏移數(shù)據(jù)和"讀取啟用"位經(jīng)配置在同一寄存器群組中。 舉例來(lái)說(shuō),為從寄存器堆A (31)中的寄存器讀取位,第一寫入命令用于寫入 控制字I (33),所述控制字具有用以選擇寄存器堆B中包括"讀取啟用"位的寄存器群組的地址數(shù)據(jù)。接著,第二寫入命令用于寫入控制字J (35),所述控 制字具有用以選擇"偏移位O"的地址數(shù)據(jù)和用于"偏移位O"的相應(yīng)數(shù)據(jù)。接 著,第三寫入命令用于寫入控制字J (35),所述控制字具有用以選擇"偏移位 1"的地址數(shù)據(jù)和用于"偏移位1"的相應(yīng)數(shù)據(jù)。接著,第四寫入命令用于寫入 控制字J (35),所述控制字具有用以從選定的寄存器群組選擇"讀取啟用"位 的地址數(shù)據(jù)和用于將"讀取啟用"位設(shè)定到讀取模式的輸入數(shù)據(jù)。接著,第五 寫入命令用于寫入待讀取的控制字,這導(dǎo)致在將新數(shù)據(jù)寫入寄存器之前,通過(guò) 為奇偶性錯(cuò)誤輸出而設(shè)計(jì)的引腳讀出由"偏移位O"和"偏移位1"指定的位?;蛘?,當(dāng)將"讀取啟用"位設(shè)定到讀取模式時(shí),定址到不同于控制字I和J (33和35)的寄存器的寫入命令促使電路從寄存器讀出數(shù)據(jù)而不會(huì)將輸入數(shù)據(jù) 寫入經(jīng)定址的寄存器,或促使電路從寄存器讀出數(shù)據(jù)并將來(lái)自寄存器的讀取重 新寫回寄存器中,或促使電路讀出由偏移數(shù)據(jù)識(shí)別的位并寫入用于經(jīng)識(shí)別位的 輸入數(shù)據(jù)而不寫入寄存器的其它位?;蛘?,從寄存器讀出完整的寄存器數(shù)據(jù)或寄存器的未由偏移數(shù)據(jù)選定的位 中的數(shù)據(jù),并寫入寄存器堆B (41)中的預(yù)定義的位置,隨后可每次一位地對(duì) 其進(jìn)行讀出。在一個(gè)實(shí)施例中,寄存器堆B (41)中的"位X"用于指示當(dāng)將"讀取啟 用"位設(shè)定到讀取模式時(shí)是否根據(jù)輸入數(shù)據(jù)來(lái)覆寫寄存器。在一個(gè)實(shí)施例中,響應(yīng)于對(duì)寄存器堆A (31)中同一寄存器的每一寫入命 令,計(jì)數(shù)器以循環(huán)方式自動(dòng)遞增存儲(chǔ)在"偏移位0"和"偏移位1"中的偏移量, 以循環(huán)通過(guò)寄存器的每一位而讀出寄存器的不同位。因此,可讀取寄存器堆A (31)中的四位寄存器的不同位,而不需要使用對(duì)控制字I和J (33)的寫入命 令來(lái)更新寄存器堆B (41)中的偏移數(shù)據(jù)。在一個(gè)實(shí)施例中,電路存儲(chǔ)前一寫入命令的地址以判斷用于訪問(wèn)寄存器堆 A (31)中的寄存器的寫入命令的當(dāng)前地址是否與前一者相同。在當(dāng)前地址不同 于前一者時(shí),重設(shè)寄存器堆B中的偏移位以在將"讀取啟用"位設(shè)定到讀取模 式時(shí)讀取寄存器中的第一位;在當(dāng)前地址與前一者相同時(shí),使寄存器堆B中的 偏移位每次增加一,以在將"讀取啟用"位設(shè)定到讀取模式時(shí)通過(guò)寄存器的隨 后位進(jìn)行讀取。在一個(gè)實(shí)施例中,可在將"讀取啟用"位設(shè)定到讀取模式時(shí)通過(guò)寫入寄存 器位來(lái)讀取寄存器堆B中的每一寄存器位。舉例來(lái)說(shuō),為讀取寄存器堆(41)中的"位X",第一寫入命令可用于設(shè)定 控制字I(33)以選擇含有"讀取啟用"位的寄存器群組;接著,第二寫入命令 可用于設(shè)定控制字J (33)以從選定群組中選擇"讀取啟用"位并將"讀取啟用" 位設(shè)定到讀取模式;接著,第三寫入命令可用于設(shè)定控制字I (33)以選擇含有 "位X"的寄存器群組;接著,第四寫入命令可用于設(shè)定控制字J (33)以從選 定群組中選擇"位X"并提供用于"位X"的新數(shù)據(jù),這促使電路在將新數(shù)據(jù) 寫入"位X"之前從"位X"輸出舊數(shù)據(jù)?;蛘?,當(dāng)將"讀取啟用"位設(shè)定在讀取模式中時(shí),如果經(jīng)定址的位并非"讀 取啟用"位,那么不將新數(shù)據(jù)寫入寄存器堆中的經(jīng)定址的位。在一個(gè)實(shí)施例中,當(dāng)控制字J(35)提供比通過(guò)輸出通道可讀出的位多的位 時(shí),經(jīng)由一個(gè)或一個(gè)以上偏移位(例如,"偏移位0"和/或"偏移位1")讀取由 控制字(33和35)定址的數(shù)據(jù)的一部分。類似地,計(jì)數(shù)器可用于自動(dòng)設(shè)定偏移 數(shù)據(jù),以在控制字(33和35)提供的地址與前一者不同時(shí)讀取經(jīng)定址位的第一 位,且在控制字(33和35)提供的地址與前一者相同時(shí)自動(dòng)遞增以讀取隨后的 位。因此,本發(fā)明的技術(shù)可用于通過(guò)使用廠商指定的控制字來(lái)擴(kuò)展具有預(yù)定義 通信協(xié)議的電路的功能性。在根據(jù)SSTE32882標(biāo)準(zhǔn)向寄存時(shí)鐘驅(qū)動(dòng)器添加讀取 操作之后,控制寄存器不僅可被寫入,也可被讀取以提供用于硅片調(diào)試的更好 的可見(jiàn)性,而不需要任何額外的墊成本。此外,在一個(gè)實(shí)施例中,通過(guò)寫入操 作啟用讀取操作,使主機(jī)軟件的修改最小化。在前述說(shuō)明書中,已參考本發(fā)明的具體示范性實(shí)施例對(duì)本發(fā)明進(jìn)行了描述。 顯然,在不脫離本發(fā)明的如在所附權(quán)利要求書中所主張的更廣泛的精神和范疇 的情況下,可對(duì)本發(fā)明進(jìn)行各種修改。因此,應(yīng)認(rèn)為說(shuō)明書和圖式是說(shuō)明性的 而不是限制性的。
權(quán)利要求
1. 一種電路,其包含第一組寄存器;第二組寄存器,其與所述第一組寄存器耦合,將通過(guò)定址到所述第一組中的一個(gè)或一個(gè)以上寄存器的一個(gè)或一個(gè)以上寫入操作來(lái)對(duì)所述第二組寄存器進(jìn)行寫入;和讀取控制器,其與所述第一和第二組寄存器耦合,所述讀取控制器基于存儲(chǔ)在所述第二組中的一個(gè)或一個(gè)以上寄存器中的數(shù)據(jù)選擇性地輸出存儲(chǔ)在所述第一和第二組寄存器中的數(shù)據(jù)的一部分。
2. 根據(jù)權(quán)利要求1所述的電路,其中所述電路集成在芯片上。
3. 根據(jù)權(quán)利要求2所述的電路,其中所述電路包含集成在所述芯片上的寄 存時(shí)鐘驅(qū)動(dòng)器。
4. 根據(jù)權(quán)利要求3所述的電路,其中所述寄存時(shí)鐘驅(qū)動(dòng)器是根據(jù)聯(lián)合電子 裝置工程協(xié)會(huì)(JEDEC)標(biāo)準(zhǔn)。
5. 根據(jù)權(quán)利要求3所述的電路,其中所述寄存時(shí)鐘驅(qū)動(dòng)器是根據(jù)用于DDR3 (雙倍數(shù)據(jù)速率3) RDIMM (寄存器式雙列直插存儲(chǔ)器模塊)應(yīng)用的具有奇偶性的SSTE32882寄存時(shí)鐘驅(qū)動(dòng)器的聯(lián)合電子裝置工程協(xié)會(huì)(JEDEC)標(biāo)準(zhǔn)。
6. 根據(jù)權(quán)利要求l所述的電路,其進(jìn)一步包含 邏輯塊;和多路復(fù)用器,其與所述邏輯塊、所述讀取控制器和所述第二組寄存器耦 合,所述多路復(fù)用器基于存儲(chǔ)在所述第二組中的所述一個(gè)或一個(gè)以上寄存器 中的數(shù)據(jù)來(lái)從所述邏輯塊的輸出和所述讀取控制器的輸出中進(jìn)行選擇以作為 所述電路的輸出。
7. 根據(jù)權(quán)利要求6所述的電路,其中所述邏輯塊產(chǎn)生用以指示是否已發(fā)生奇偶性錯(cuò)誤的輸出,且當(dāng)對(duì)所述第一組中的一個(gè)寄存器進(jìn)行寫入時(shí)所述讀取控 制器根據(jù)存儲(chǔ)在所述第二組寄存器中的一者中的數(shù)據(jù)來(lái)從所述第一和第二組寄 存器中的一者中讀取一位。
8. 根據(jù)權(quán)利要求7所述的電路,其中由所述讀取控制器讀取的所述一位是 來(lái)自所述第一組的正根據(jù)輸入數(shù)據(jù)進(jìn)行寫入的寄存器。
9. 根據(jù)權(quán)利要求8所述的電路,其中在根據(jù)所述輸入數(shù)據(jù)對(duì)所述寄存器進(jìn) 行寫入之前由所述讀取控制器讀取所述一位。
10. 根據(jù)權(quán)利要求6所述的電路,其中當(dāng)所述第二組中的寄存器的第一位處 于第一狀態(tài)時(shí),所述多路復(fù)用器選擇所述邏輯塊的輸出;當(dāng)所述第二組中的所 述寄存器的所述第一位處于第二狀態(tài)時(shí),所述多路復(fù)用器選擇所述讀取控制器的輸出。
11. 根據(jù)權(quán)利要求IO所述的電路,其中所述第一組寄存器包含 第一多個(gè)寄存器,用以根據(jù)標(biāo)準(zhǔn)來(lái)存儲(chǔ)數(shù)據(jù)以控制所述電路的操作;和 第二多個(gè)寄存器,用以存儲(chǔ)廠商指定的數(shù)據(jù)以控制所述電路的操作。
12. 根據(jù)權(quán)利要求11所述的電路,其中所述用以存儲(chǔ)廠商指定數(shù)據(jù)的第二 多個(gè)寄存器包括第一寄存器和第二寄存器,所述第一寄存器存儲(chǔ)用于從所述第 二組選擇一寄存器群組的數(shù)據(jù),所述第二寄存器接收識(shí)別所述選定群組中的一 個(gè)或一個(gè)以上位的第一數(shù)據(jù),以及將被寫入根據(jù)所述第一數(shù)據(jù)所識(shí)別的所述一 個(gè)或一個(gè)以上位中的第二數(shù)據(jù),響應(yīng)于被寫入的所述第二寄存器而將所述第二 數(shù)據(jù)寫入所述第二組中的所述選定的寄存器群組的所述一個(gè)或一個(gè)以上位中。
13. 根據(jù)權(quán)利要求12所述的電路,其中當(dāng)所述第一位處于所述第二狀態(tài)中 時(shí),在將所述第二數(shù)據(jù)寫入所述經(jīng)識(shí)別的一個(gè)或一個(gè)以上位之前,由所述讀取 控制器讀取根據(jù)所述第一數(shù)據(jù)所識(shí)別的所述一個(gè)或一個(gè)以上位中所存儲(chǔ)的數(shù) 據(jù),以便使所述多路復(fù)用器進(jìn)行選擇。
14. 根據(jù)權(quán)利要求12所述的電路,其中當(dāng)所述第一位處于所述第二狀態(tài)時(shí),如果所述經(jīng)識(shí)別的一個(gè)或一個(gè)以上位不包括所述第一位,便將根據(jù)所述第一數(shù) 據(jù)所識(shí)別的所述一個(gè)或一個(gè)以上位中所存儲(chǔ)的數(shù)據(jù)重新寫回所述經(jīng)識(shí)別的一個(gè) 或一個(gè)以上位中;且當(dāng)所述第一位處于所述第一狀態(tài)時(shí),將所述第二數(shù)據(jù)寫入 所述經(jīng)識(shí)別的一個(gè)或一個(gè)以上位中。
15. 根據(jù)權(quán)利要求11所述的電路,其中所述第二組中的所述寄存器的一個(gè) 或一個(gè)以上第二位存儲(chǔ)識(shí)別所述第一組中的寄存器的一個(gè)或一個(gè)以上位的數(shù) 據(jù);當(dāng)所述第一位處于所述第二狀態(tài)時(shí),在對(duì)所述第一組中的所述寄存器進(jìn)行 寫入之前由所述讀取控制器讀取根據(jù)所述一個(gè)或一個(gè)以上第二位所識(shí)別的所述 一個(gè)或一個(gè)以上位中所存儲(chǔ)的數(shù)據(jù),以便使所述多路復(fù)用器進(jìn)行選擇。
16. 根據(jù)權(quán)利要求11所述的電路,其中所述第二組中的所述寄存器的一個(gè) 或一個(gè)以上第二位存儲(chǔ)識(shí)別所述第一組中的寄存器的一個(gè)或一個(gè)以上位的數(shù) 據(jù);當(dāng)所述第一位處于所述第二狀態(tài)時(shí),當(dāng)所述電路接收輸入以寫入所述第一 組中的所述寄存器中時(shí),由所述讀取控制器將存儲(chǔ)在所述第一組中的所述寄存 器中的數(shù)據(jù)重新寫回所述第一組中的所述寄存器中。
17. —種集成電路,其包含 多個(gè)寄存器;和讀取控制器,其與所述多個(gè)寄存器耦合,當(dāng)所述電路接收輸入以寫入第一 寄存器中時(shí),所述讀取控制器輸出存儲(chǔ)在所述多個(gè)寄存器中的第一寄存器中的 數(shù)據(jù)的一部分,將根據(jù)存儲(chǔ)在所述多個(gè)寄存器中的第二寄存器中的數(shù)據(jù)來(lái)選擇 所述部分。
18. 根據(jù)權(quán)利要求17所述的集成電路,其進(jìn)一步包含 邏輯塊;和多路復(fù)用器,其耦合到所述讀取控制器和所述邏輯塊; 其中當(dāng)所述第二寄存器的位處于第一狀態(tài)時(shí),所述多路復(fù)用器選擇邏輯 塊;且當(dāng)所述第二寄存器的所述位處于第二狀態(tài)時(shí),所述多路復(fù)用器選擇所述 讀取控制器。
19. 一種集成電路,其包含第一組寄存器,其包括第一寄存器和第二寄存器;和第二組寄存器,其與所述第一組寄存器耦合,所述第二組中的一寄存器 群組將由存儲(chǔ)在所述第一寄存器中的數(shù)據(jù)識(shí)別,所述群組的一個(gè)或一個(gè)以上 位將由存儲(chǔ)在所述第二寄存器中的數(shù)據(jù)的一部分識(shí)別;其中響應(yīng)于正被寫入的所述第二寄存器,將寫入所述第二寄存器中的數(shù) 據(jù)的一部分進(jìn)一步寫入由存儲(chǔ)在所述第一和第二寄存器中的數(shù)據(jù)識(shí)別的所述 群組的所述一個(gè)或一個(gè)以上位中。
20. 根據(jù)權(quán)利要求17所述的集成電路,其進(jìn)一步包含 邏輯塊,其用以檢查奇偶性錯(cuò)誤;讀取控制器,其用以當(dāng)所述集成電路接收輸入以寫入所述第一組和第二 組中的寄存器中時(shí)讀出所述第一組和第二組中的所述寄存器的至少一部分; 和多路復(fù)用器,其耦合到所述讀取控制器和所述邏輯塊; 其中當(dāng)所述第二組寄存器的位處于第一狀態(tài)時(shí),所述多路復(fù)用器選擇所 述邏輯塊;且當(dāng)所述第二組寄存器的所述位處于第二狀態(tài)時(shí),所述多路復(fù)用器選擇所 述讀取控制器。
全文摘要
集成電路已擴(kuò)展一組定制寄存器和用于控制寄存器的讀取機(jī)構(gòu)。一種電路包含第一組寄存器;第二組寄存器,其與所述第一組寄存器耦合,將通過(guò)定址到所述第一組中的一個(gè)或一個(gè)以上寄存器的一個(gè)或一個(gè)以上寫入操作來(lái)對(duì)所述第二組寄存器進(jìn)行寫入;和讀取控制器,其與所述第一和第二組寄存器耦合,所述讀取控制器基于存儲(chǔ)在所述第二組中的一個(gè)或一個(gè)以上寄存器中的數(shù)據(jù)選擇性地輸出存儲(chǔ)在所述第一和第二組寄存器中的數(shù)據(jù)的一部分。
文檔編號(hào)G11C7/22GK101276637SQ200710112430
公開(kāi)日2008年10月1日 申請(qǐng)日期2007年6月21日 優(yōu)先權(quán)日2007年3月29日
發(fā)明者雷 吳, 崗 山, 蔣逸波 申請(qǐng)人:瀾起科技(上海)有限公司