可編程存儲器存取接口類型的集成電路微處理器及方法
2023-05-13 15:47:51
專利名稱:可編程存儲器存取接口類型的集成電路微處理器及方法
技術領域:
本發明一般涉及數據處理器,更具體地涉及帶有集成接口邏輯的數據處理器。
在很多情況下,集成電路微處理器必須與其它集成電路裝置相連以完成一定功能。這類外部裝置的例子有存儲器、串聯接口適配器、模數轉換器和其它很多裝置。在大部分例子中,每個這類外部設備需要外部控制信號以便在微處理器訪問該設備時適當地將它激活。例如,一個靜態隨機存取存儲器(SRAM)集成電路需要允許晶片操作、允許輸出、和允許寫控制信號以控制讀寫存取。這些信號的時序要求與市場上現成裝置有所不同。例如,某些SRAM相對於允許輸出信號異步地提供輸出數據,而其它SRAM都與時鐘信號同步地採樣允許輸出信號並提供輸出數據。
一般情況下,一個設計帶有微處理器和其它集成電路系統的設計者使用「膠合邏輯」,以便從由微處理器本身所產生的地址和總線控制信號中產生所需晶片選擇信號。這個外加邏輯顯著地增加了正在設計的系統的費用並可能使性能變壞,因而是極不受歡迎的。
可從California的Santa Clara的Intel Corporation得到的80186(亦稱為iAPX186)是一個具有用於產生晶片選擇信號的內部邏輯的集成電路微處理器。該晶片選擇邏輯在完成下列功能時能力有限為其7個可能活動的晶片選擇的地址範圍編程及為其每個活動的晶片選擇的總線周期可編程地插入等待狀態。此外,某些晶片選擇可編程為只在存儲器內或微處理器的I/O地址空間內是活動的。
具有板上晶片選擇邏輯的集成電路微處理器的另一個例子是1992年9月29日授權的在美國專利5,151,986中由John A.Langan和James M.Sibigtroth所公開的。所公開的晶片選擇邏輯包括一個控制寄存器,依靠它可為數個晶片選擇輸出量中的每一個將時序、極性和等待狀態數量單獨地進行編程。
將晶片選擇邏輯合併入微處理器集成電路所帶來的主要問題牽涉到向用戶提供足夠的靈活性。膠合邏輯的使用十分靈活,因為系統設計者有很大自由在微處理器內存映射區中安排每個外部設備及安排時序和晶片選擇信號本身的其它特性。這種靈活性很有用,因為可能設計的系統和特定外部設備的晶片選擇要求互相間的差別是很大的。要在集成電路選擇單元內提供足夠靈活性而又將該單元尺寸約束在合理限度內是很困難的。
一種靈活性是能夠支持具有脈衝串模式能力的CPU。脈衝串模式是一種模式,其中CPU在連續的時鐘周期內訪問一連串內存地址。例如,作為傳送指令的一部分,CPU可在連續時鐘周期內讀字,從而自內存讀取幾個數據字。市場上現成的高過SRAM通過稱為頁模式、半字節模式、靜列或類似模式的特徵支持脈衝串模式。然而這些SRAM需要短存取時間的晶片,以便在一個時鐘周期內提供數據,因此通常是昂貴的。
相應地提供一種形式的具有可編程接口類型的數據處理器,包括一個中央處理單元(CPU),一個可選寄存器,一個解碼器,和一個存取控制器。CPU執行指令和存取內存。可選寄存器連至CPU並和一個內存區相關連。該可選寄存器存放一個編碼值。解碼器連至可選寄存器,並將編碼值進行解碼,以便對存取該內存區的CPU作出響應,提供解碼信號。該解碼信號採取眾多狀態之一,包括合法狀態和備用狀態。存取控制器連至CPU和解碼器或其中之一,如解碼信號處於合法狀態,則存取控制器將具有由對應於該解碼信號的可編程接口類型所定義的時序特性的眾多外部控制信號加以激活,或如該解碼信號處於備用狀態,則存取控制器保持眾多外部控制信號不活動。因此該數據處理器防止軟體誤差造成未定義的內存存取。
下面結合附圖所作的詳細描述將使這些和其它特徵和優點更為明顯。
圖1以框圖形式闡述根據本發明的數據處理系統。
圖2-10闡述圖1晶片選擇電路的不同方面,以便於了解本發明。
圖2以框圖形式闡述圖1數據處理系統的內存映象一部分。
圖3以框圖形式闡述圖1晶片選擇電路的多級保護電路。
圖4以框圖形式闡述圖1晶片選擇電路的可編程存取類型電路。
圖5描述圖1晶片選擇電路所完成的第一內存存取類型的時序圖。
圖6描述圖1晶片選擇電路所完成的第二內存存取類型的時序圖。
圖7描述圖1晶片選擇電路所完成的第三內存存取類型的時序圖。
圖8以框圖形式闡述圖1晶片選擇電路的一個模塊化晶片選擇控制電路。
圖9以部分框圖和部分邏輯圖形式闡述圖1晶片選擇電路的一個管腳配備邏輯電路。
圖10以框圖形式闡述圖8模塊化晶片選擇控制電路的時序控制級。
圖11以框圖形式闡述圖1晶片選擇電路特定實施例的功能框圖。
圖12a和12b,以塊形式闡述圖1晶片選擇電路的寄存器地址映象。
圖13以框圖形式闡述圖11晶片選擇發生單元。
圖14-19闡述圖13控制單元所提供的不同接口類型的時序圖。
圖1以框圖形式闡述根據本發明的一個數據處理系統20。數據處理系統20一般包括一個外部總線21、一個電可編程只讀存儲器(EPROM)22、一個靜態隨機存取存儲器(SRAM)23、一個輸入輸出(I/O)晶片24、一個I/O晶片25、和一個數據處理器30。數據處理器30是一個用作數據處理系統20的中央處理單元(CPU)的單塊集成電路,並一般包括一塊CPU晶片31、一個晶片選擇電路32、一個外部總線接口33和內部總線34。
CPU晶片31可用任何已知CPU結構實施如複雜指令集計算機(CISC)、精簡指令集計算機(RISC)、數位訊號處理器(DSP)或任何其它已知結構。此外,數據處理器30可看作為一個高度集成的微處理器或微控制器(嵌入控制器、微計算機、等等)。在微控制器的例中,數據處理器30包括數據處理系統的其它常規元件,如存儲器和外設,它們位於晶片上並連至內部總線34。然而在數據處理系統20中,這類裝置也可裝在晶片之外,而數據處理器30則使用外部總線接口33通過外部總線21連至這些裝置。
外部總線接口33通過內部總線34連至CPU晶片31。並向外部總線21提供信號外部總線接口33用於將內部總線34適配至單個外部總線21。例如,如CPU晶片31實施Harvard結構,使用單獨的指令和數據通路,則外部總線接口33將按來自這些單獨的指令和數據通路的存取按順序安排至外部總線21上。
為減少集成電路數量,數據處理器30包括晶片選擇電路32,用於產生直接送至EPROM22、SRAM23和I/O晶片24和25的時序和控制信號。例如,在所描述的實施例中,晶片選擇電路32向EPROM22提供兩個低活動晶片選擇信號,即被稱為允許晶片CE和允許輸出OE,用於從外部總線21提取指令。為存取讀寫裝置,晶片選擇電路32也向SRAM 23和I/O晶片24和25提供允許寫(WE)信號,例如允許寫信號。晶片選擇電路32具有一個通向外部總線接口33的雙向連接,用於接收與對外部總線21的存取相關連的地址、屬性和控制信號。在晶片上除集成板級邏輯外,晶片選擇電路32還提供一個改善的外部接口,其特點一般在圖2-9中描述。
圖2以框圖形式闡述圖1數據處理系統20的內存映象的一部分40。部分40通常以降序形式表示一連串地址,將大地址表示於小地址之上。部分40包括一個主塊41,由「主塊高地址」和「主塊低地址」定界。圖1晶片選擇電路32具備能力,可編程一個子塊42,使之或與主塊41重疊,或位於主塊41邊界之內。此重疊控制是有用的,因當內存密度增加後,具有多個與單個內存集成電路相關連的區域是有用的,其中每個區域具有不同可編程屬性。為此目的,子塊42可如圖2所示完全位於主塊41之內而由「子塊高地址」和「子塊低地址」定界。
晶片選擇電路32如圖3所描述,實施此重疊內存映象,圖3以框圖形式闡述圖1晶片選擇電路32的多級保護電路50。多級保護電路50一般包括用於任意數量塊的解碼器,它們中某些塊可能是重疊的。例如,如圖3所闡述,多級保護電路50包括一個主塊解碼器51和一個子塊解碼器54,用於分別實施圖2的主塊41和子塊42。注意此處所用詞「塊」和「區」是同義的,而「子塊」代表位於一塊更大的塊或區的邊界內的塊或區。
主塊解碼器51包括一個對應於主塊低地址的基址寄存器52和一個可選寄存器53。可選寄存器53包括一個塊長度域,當將它加到存放於基址寄存器52內的基址上時,即可確定主塊高地址。此外,可選寄存器53存放著用於保護與主塊41相關連的區域的屬性。類似地,子塊解碼器54包括一個決定子塊低地址的基址寄存器55和一個可選寄存器56,後者包括一個決定子塊高地址的塊長度域。此外,可選寄存器56包括用於與子塊42相關連的可編程屬性的域。
主塊解碼器51和子塊解碼器54兩者都在圖1的CPU晶片31的總線周期內接收一個標號為「地址」的輸入地址,以及此外還接收標號為「保護屬性」的代表當前周期保護屬性的控制信號。這類保護屬性的例子是寫信號標誌。例如,如主塊41或子塊42被防寫,則寫信號將標明該未決周期為寫周期,因而本周期與所編程的保護不匹配。主塊解碼器51和子塊解碼器54的每一個都將地址信號與由相應可選寄存器中基址寄存器和區長度域所定義的區域進行比較。如該地址位於該區域內,則相應的塊解碼器激活一個標號為「地址匹配」的地址匹配信號。此外,如輸入的保護屬性與相應的可選寄存器內的編程值相匹配,則該塊解碼器激活一個標號為「屬性匹配」的相應的屬性匹配信號。
接著優先級強制電路58從每個塊接收地址匹配和屬性匹配信號,並根據優先級機理決定是否激活一個外部控制信號,如標號為「CE」的信號。如只有主塊解碼器51和子塊解碼器54中的一個激活其地址匹配信號,則優先級強制電路58隻當相應的屬性匹配信號也已激活時才將信號CE激活。現同時參照圖2和3,假定地址處於主塊低地址和子塊低地址之間。這種情況下,主塊解碼器51將檢測到地址匹配情況並激活地址匹配信號。此外,假定保護屬性與可選寄存器53中所編程的保護屬性相匹配。這種情況下,主塊解碼器51也將激活屬性匹配信號。然而,由於地址不處於子塊42之內,所以子塊解碼器54將不激活其地址匹配信號。因此優先級強制電路58根據主塊41內的地址和屬性匹配情況激活信號CE。
現看地址落在子塊42內的情況。這種情況下,主塊解碼器51和子塊解碼器54兩者都激活它們相應的地址匹配信號。現也假定保護屬性與可選寄存器53中所定義諸項相匹配,因而主塊解碼器51激活其屬性匹配信號。然而與此同時,由於保護屬性與可選寄存器56中所編程的屬性不匹配,所以子塊解碼器54不激活其屬性匹配信號。這種情況下,優先級強制電路58將信號CE保持為不活動,承認子塊解碼器54的優先級高於主塊解碼器51。因此子塊42能以更高的保護優先級嵌套於主塊41內。這種塊之間的嵌套和優先級分配可擴大應用至任意數的嵌套。
圖4以框圖形式闡述圖1晶片選擇電路32的可編程存取類型電路60。可編程存取類型電路60一般包括一個可選寄存器61,後者具有一個接口類型域62、一個接口類型解碼器63和一個存取控制器64。可選寄存器61是一個如上面圖3所闡述的可編程區相關連的寄存器,它包括一個接口類型(ITYPE)域62。ITYPE域包括一個編碼接口類型值,提供給接口類型解碼器63輸入端。接口類型解碼器63接著將ITYPE域62解碼並將解碼信號提供給存取控制器64。接著存取控制器64根據輸入的標號為「時鐘」的時鐘信號為CE、OE和WE產生時序信息。
在已知的晶片選擇電路中,可選寄存器為預解碼域中個別信號定義時序和接口特性。因此,當軟體誤差的存在使這些位中一位或更多位受到破壞時,將會產生非法時序組合,結果產生硬體錯誤或軟體崩潰。然而可編程存取類型電路60能阻止這類出錯組合,因此數據處理器30對軟體錯誤有更大抗擾性及允許更快更不易出錯的軟體開發。可編程存取類型電路60利用編碼的ITYPE域能防止這些軟體錯誤造成未經定義的內存存取。在開發軟體時,軟體錯誤會導致ITYPE域62不正確地編碼,致使ITYPE域62的一位或更多位的數值不對。接口類型解碼器63將來自ITYPE域62的編碼信號加以解碼,從而提供一個可採取合法狀態或備用狀態的解碼信號。如ITYPE域62編碼得合法狀態,則接口類型解碼器63向存取控制器64提供輸出量,以便根據所選合法接口類型提供時序信息。然而,如ITYPE域62編碼得備用狀態,則接口類型解碼器63將不會激活其送給存取控制器64的輸出量。因此存取控制器64將不完成外部總線周期。
圖5描述由圖1晶片選擇電路32完成的第一內存存取類型的時序圖。圖5顯示有助於理解這個第一內存存取類型的幾個信號,包括時鐘、地址、WE、CE、OE和數據。這種內存存取類型稱為「帶有早期同步允許輸出信號的同步接口」類型。圖5所示第一條線是時鐘信號,圖5所示其它所有信號都與它同步。三個標號為「t1」、「t2」和「t3」並對應於時鐘信號的連續由低到高轉變的時間點有助於理解本內存存取類型。
注意圖5假定在時間t1之前所有以前的存取操作都已結束。還注意圖5所描述的信號波形假定晶片選擇電路32向外部總線接口33提供信號,以確認存取周期的地址段和數據段。然而如使用外部確認信號,則存取的地址段和數據段的持續時間決定於何時接收到這些確認信號。例如,一個標為「AACK」的稱為地址確認的信號對存取周期的地址段加以確認。晶片選擇電路32保持信號CE活動,直至它檢測到在時鐘由低到高轉變之前對信號AACK的激活。一個標為「TA」的稱為傳送確認的信號對存取周期的數據段的結束加以確認。晶片選擇電路32保持信號OE(在讀周期內)或WE(在寫周期內)活動,直至它檢測到在時鐘由低到高轉變時對信號TA的激活時為止。
一個標號為「A1」對應於第一內存存取的地址在時鐘信號由低到高轉變的時間點t1處建立起來。為標明該存取是讀存取,晶片選擇電路32使信號WE不活動。此外,晶片選擇電路32將信號CE激活,以使被存取存儲裝置將地址A1鎖存並使存取周期的起始時間的t1早一個建立時間。接著,在比時鐘信號由低到高轉變的t2時間點更早一個建立時間的時刻,晶片選擇電路32將信號OE激活。信號OE的激活使存儲裝置開始輸出其數據。由於是隨著時鐘信號的由低到高轉變而建立起來的,因此信號OE是同步的而對此類型存取周期作出響應的存儲裝置能於時鐘信號由低到高轉變時檢測到信號OE。在存儲裝置檢測到信號OE的激活後,它即開始提供其輸出數據以完成讀存取周期。如圖5所示,由晶片選擇電路32中所編程的對此存取類型作出響應的存儲裝置具有一個等待狀態。因此晶片選擇電路32在比t2早一個建立時間的時刻將信號OE激活,使存儲裝置在比時鐘信號由低到高轉變的t3時間點更早一個建立時間的時刻提供標號為「D1」的被存取數據單元。
這個存取周期類型的優點在於具有相對地慢的存儲器晶片的存儲裝置可以順序地和有效地進行存取操作。由於信號OE在t2之前建立起來而在t2時刻由所存取存儲裝置所檢測到,晶片選擇電路32可以在第一個存取的數據段完成之前就較早地完成第二個存取的地址段。晶片選擇電路32在至少比t3早一個建立時間的時刻提供一個標號為「A2」的第二個重疊地址,再次保持信號WE不活動和再次在比t3早一個建立時間的時刻激活信號CE。
圖6闡述另一種接口類型及圖1晶片選擇電路32所完成第二內存存取類型的時序圖。如圖5中一樣,圖6顯示了與總線周期相關的信號,包括時鐘、地址、CE、OE和數據。此外,圖6描述了一個標號為「BDIP」的信號,後者標明目前進行的是一個脈衝串數據周期。圖6闡述一種稱為「帶有同步OE的同步脈衝串讀取」類型的內存存取類型。圖6顯示附加的標號為「t4」、「t5」、「t6」、「t7」、「t8」、「t9」和「t10」的時鐘信號的由低到高轉變。
這種存取類型相似於圖5所闡述的存取,但和圖5所闡述的存取不同的是,被存取的存儲裝置在時間點t6、t7、t8和t9處提供4個順序的數據單元,從而完成一個脈衝串存取。這4個數據單元分別標以「D10」、「D11」、「D12」和「D13」。如晶片選擇電路32中所編程那樣,對這種存取類型作出響應的存儲裝置具有一個等待狀態。因此在時間t5檢測到信號OE的激活之後,該存儲裝置在比時鐘信號由低到高轉變的t6時間點更早一個建立時間的時刻提供所存取的數據單元D10。作為脈衝串一部分的隨後的數據單元是在時鐘信號隨後的由低到高轉變時對信號BDIP的激活作出響應時提供的。這種存取周期類型的優點在於具有相對地慢的存儲器晶片的存儲裝置可以順序地和有效地進行存取。
還有一個接口類型闡述於圖7中,圖7闡述圖1晶片選擇電路32所完成的第三內存存取類型的時序圖。如圖5中一樣,圖7顯示了與總線周期相關的信號,包括時鐘、地址、WE、CE、OE和數據。圖7闡述的內存存取類型稱為「帶有同步OE和早期重疊的同步接口」類型。圖7顯示附加的標號為「t11」、「t12」、「t13」和「t14」的時鐘信號的由低到高轉變。
在t11附近,標號為A1的第一總線周期的地址在時鐘信號於t11時刻由低到高轉變時建立起來。此外,信號WE不活動而CE活動(標以「CE1」),標明在時間地址A1處的讀周期是合法的。隨後,由於晶片選擇電路32在比t12早一個建立時間的時刻激活信號OE(標以「OE1」),因此出現對應於此第一存取的數據段。隨後,如圖5以前所標明的,被存取的存儲裝置在比t13早一個建立時間的時刻提供數據單元D1。
然而,根據本接口類型,晶片選擇電路32在第一存取數據段的至少一部分時間內完成地址段,因而開始第二存取。晶片選擇電路32在比時鐘信號於時間點t12由低到高轉變時更早一個建立時間的時刻提供一個標號為A2的第二地址,從而完成此接口。與前面一樣,晶片選擇電路32保持信號WE不活動,以標明一個讀周期,並激活信號CE(標以「CE2」)以向被存取存儲裝置標明地址A2是合法的。在被存取存儲裝置在比t13早一個建立時間的時刻提供數據單元D1從而完成第一存取的數據段之後,晶片選擇電路32可在比t13早一個建立時間的時刻激活信號OE(標以「OE2」),從而開始第二存取的數據段。隨後,被存取存儲裝置在比t14早一個建立時間的時刻提供標號為「D2」的數據單元。由於在第一存取的數據段結束之前就開始第二存取的地址段,晶片選擇電路32允許重疊存取,這改善了總線的利用和允許在給定時間內進行更多的內存存取。
晶片選擇電路32也可以模塊化,以便如圖8所闡述那樣,為不同應用目的重新配備,圖8以框圖形式闡述圖1晶片選擇電路32的模塊化晶片選擇控制電路80。模塊化晶片選擇控制電路80一般包括兩條用於互連信號的總線標號為「解碼總線」81的第一總線和標號為「時序總線」82的第二總線。模塊化晶片選擇控制電路80還包括一個地址解碼級90、一個時序控制級100和一個管腳配備級110。模塊化晶片選擇控制電路80包括一個第一任意數的地址解碼器和地址解碼級90,一個時序控制級100中的第二任意數的控制單元,和第三任意數的管腳配備邏輯電路和管腳配備級110,因而是模塊化和可重新配備的。
如圖8所闡述,地址解碼級包括代表性的地址解碼器91、94和97。地址解碼器91包括一個基址寄存器92和一個可選寄存器93。基址寄存器92為與地址解碼器91相關連的可編程區域定義一個基址。可選寄存器93包括一個與地址解碼器91及其它和區域特性有關的可編程或相關連的區域的長度。地址解碼器91通過內部總線34接收來自圖1CPU晶片31的地址,並進行比較以檢查該地址是否位於基址寄存器在可選寄存器93的長度域中所定義的區域內。對地址匹配作出響應時,地址解碼器91向解碼總線81提供控制信號。類似地,地址解碼器94和97也檢測地址是否位於它們對應的可編程區域內並相應地向解碼總線81提供控制信號。地址解碼級90中的地址解碼器的數量是任意的,以便滿足不同系統需求,並可在靈活性和晶片尺寸間取得折衷。例如,在某些應用場合中需要增加可用可編程區域的數量,以容納更靈活的軟體或系統結構。而在其它應用場合中則可能減少地址解碼器的數量以使集成電路費用減至最小。
時序控制級100包括第二任意數的控制單元。在時序控制級100中闡述兩個控制單元101和102。時序控制級100用作一個存取狀態機以便將晶片選擇信號提供給外部總線21,同時每個控制單元101和102都有一個輸入端連至解碼總線81,用於接收解碼信號,以便標明一個正在進行中的總線周期是否與一個或更多個可編程區域相匹配。作為響應,時序控制級100的控制單元中的所選的一個單元向時序總線82提供順序時序信息,以反映用於所給定可編程接口類型的恰當時序。時序控制級100中所選控制單元的數量決定了正在進行中的未決重疊內存存取的數量。這個未決內存存取的數量亦稱為流水線深度。
例如,地址解碼級90中的地址解碼器91檢測到一個和它對應的可編程區域的存取並作為響應向解碼總線81提供控制信號。在時序控制級100中,一個例如控制單元101那樣的控制單元與此總線周期互相關連,並在此存取的未決期間為此存取向時序總線82提供時序信號。在第一次存取期間可能發生第二次存取,地址解碼級90中的一個地址解碼器可能檢測到一個對其相應可編程區域的存取、具有與在其可選寄存器所編程的屬性相匹配的屬性、並向解碼總線81提供控制信號。如該接口類型所決定的,一個例如控制單元102那樣的第二控制單元接著可能開始向時序總線82提供時序信號以便為此存取將一個或更多個晶片選擇控制信號加以重疊。
管腳配備級110包括第三任意數的管腳配備邏輯電路。每個管腳配備邏輯電路對應於並專門用於一個集成電路管腳。然而集成電路管腳可由此晶片選擇信號與其它信號所共享,其功能可通過編程加以設置。
此第三任意數在不同應用例中是不同的,以便在靈活性和系統費用間取得折衷。例如,在費用並不是最重要因素的應用場合中,可能採用更多數量的管腳配備邏輯電路,以提供更大靈活性和向更多數量的存儲裝置提供晶片選擇信號的能力。在其它更看重費用的應用場合中,可能採用較少數量的管腳配備邏輯電路。
在管腳配備級110中,顯示了代表性的管腳配備邏輯電路111、112和113,它們分別提供標號為「PINO」、「PIN1」和「PINN」的輸出信號。每個管腳配備邏輯電路具有一個連至解碼總線81用於接收控制信號的輸入端和一個連至時序總線82用於接收時序信息的第二輸入端。因為每個管腳配備邏輯電路接收所有可能的時序信息,所以每個管腳配備邏輯電路可以配備為一組晶片選擇功能中的任何一個。例如,管腳配備邏輯電路111可以配備為CE、WE或OE信號中的任何一個,這由管腳配備邏輯電路111的編程所決定。因此,由於在地址解碼級90中包括第一任意數的地址解碼器,在時序控制級100中包括第二任意數的控制單元,和在管腳配備級110中包括第三任意數的管腳配備邏輯電路,模塊化的晶片選擇控制電路80就能定義任意數的內存區域、任意數的存取流水線深度和任意數的晶片選擇信號,從而最大程度地提供靈活性。不同實施例中的這些任意數可以是不同的,以取得最好的可用的折衷。
圖9以部分框圖和部分邏輯圖的形式闡述圖1晶片選擇電路32的管腳配備邏輯電路120。管腳配備邏輯電路120一般包括一個管腳功能寄存器130,一個服從邏輯部分140,和一個管腳功能輸出部分150。管腳功能寄存器130存放用於定義如CE、OE和WE那樣的供選擇的管腳功能的位,並提供代表所選功能的解碼輸出信號。服從邏輯部分140包括任意數的服從電路,例如闡述性的服從電路141和145。服從電路141一般包括一個服從邏輯電路142、一個或門143和一個D型觸發器144。服從電路141與標以「C1」的第一周期相關連。服從電路141具有一個用於接收標號為「C1開始」的信號的第一輸入端,一個用於接收標號為「C1區域選擇」的信號的第二輸入端,一個連至管腳功能寄存器130的第三輸入端和一個輸出端。或門143具有一個用於接收標號為「C1結束」的信號的第一輸入端,一個用於接收標號為「復位」的信號的第二輸入端和一個輸出端。D型觸發器144有一個標號為「D」連至服從邏輯電路142輸出端的數據輸入端,一個標號為「清零」連至或門143輸出端的清零輸入端,和一個標號為「Q」用於提供標號為「服從1」的輸出信號的輸出端。
類似地,服從電路145與標號為「CN」的第N個周期相關連,及一般包括一個服從邏輯電路146和或門147和D型觸發器148。服從邏輯電路146具有一個用於接收標號為「CN開始」的信號的第一輸入端,一個用於接收標號為「CN區域選擇」的信號的第二輸入端,一個連至管腳功能寄存器130的輸出端的第三輸入端和一個輸出端。或門147具有一個用於接收標號為「CN結束」的信號的第一輸入端,一個用於接收復位信號的第二輸入端和一個輸出端。D型觸發器148具有一個連至服從邏輯電路146輸出端的D輸入端,一個連至或門147輸出端的清零輸入端和一個用於提供標號為「服從N」的信號的Q輸出端。
服從電路141和145確定與管腳配備邏輯電路120相關連的管腳應服從哪個周期。在第一周期內,圖8的時序控制級100中的控制單元激活一個相應的周期開始信號。例如,假定控制單元101激活C1開始信號。此外假定地址解碼級90中的一個地址解碼器激活C1區域選擇。如管腳功能寄存器130的輸出量與C1區域選擇相匹配,則服從邏輯電路142對C1開始信號的激活作出響應,將其輸出量激活。此信號即作為D輸入量送至D型觸發器144,後者接著在下一個時鐘信號(圖9未示出)時刻於Q輸出端處激活服從1信號。於是服從1信號保持活動直至所選控制單元激活用於將D型觸發器144清零的C1結束信號,或直至由於復位信號激活而將管腳配備邏輯電路120復位。服從邏輯部分140中的每個服從電路都類似地對相應的周期開始和結束信號的激活和相應的區域選擇信號的激活作出響應。
管腳功能輸出部分150一般包括任意數的對應於每個可能的管腳功能的功能邏輯塊。圖9闡述一個標號為「功能1邏輯」的第一功能邏輯塊151和一個標號為「功能M邏輯」的第二功能邏輯塊152。每個功能邏輯塊具有用於接收諸如服從1和服從N信號那樣的每個服從信號的一些輸入端,用於接收標號為「CiFj時序」的時序信號(它們代表每個周期和每個功能的時序信號)和相應的標號為CiFj選擇的選擇信號的一些輸入端,以及連至管腳功能寄存器130的相應輸出端的另一個輸入端。在此例中,下標i等於1至N,而j為1至M,其中N和M為任意數。例如,功能1邏輯塊151接收管腳功能寄存器130的輸出量,這標明PINO具有功能F1。類似地,功能M邏輯塊152從管腳功能寄存器130接收一個輸入量,這標明PINO的功能為FM功能。如管腳功能寄存器130的輸出量標明該管腳對於相應的功能作出響應,則每個功能邏輯電路對與一個活動周期相關連的時序信號作出響應。例如,如管腳功能寄存器130選擇PINO使之具有功能F1,則功能1邏輯塊151是活動的。在第一周期內服從1信號是活動的,功能1邏輯塊151接著提供一個它的與恰當的時序信號相對應的輸出量。這個恰當的時序信號是CiFj時序。此例中,所有其它功能邏輯塊都保持它們的輸出量為不活動,處於邏輯低狀態,以使提供PINO信號的或門153的輸出量只對使用該恰當的時序信號的活動的功能邏輯塊作出響應。因此,提供給PINO的晶片選擇信號只服從活動的時序周期,並允許任意數的流水線深度。PINO不服從其它的與雖不活動但在流水線中卻是未決的周期相關連的時序信號,直至活動周期結束。
圖10以框圖形式闡述圖8的模塊化晶片選擇控制電路80的時序控制級100的一部分160。部分160一般包括一個第一控制單元170、一個第二控制單元180和一個早期流水線控制電路186。控制單元170一般包括一個允許地址鎖存器171、一個可選鎖存器172和一個時序狀態機173。允許地址鎖存器171具有一個標號為「允許地址總線」的輸入端連至內部總線34的允許地址部分。CPU晶片31提供一個連至允許地址總線的允許地址信號,以標明一個存取的地址段正在進行中。作為響應,部分160必須將此允許地址信號譯為恰當的晶片選擇信號以便直接驅動存儲裝置。允許地址鎖存器171具有一個連至時序狀態機173輸入端的和連至早期流水線控制電路186輸入端的輸出端。可選鎖存器172具有一個標號為「可選總線」的連至內部總線34的可選總線部分的輸入端及一個連至時序狀態機173輸入端和連至早期流水線控制電路186輸入端的輸出端。時序狀態機173具有連至允許地址鎖存器171輸出端的、連至可選鎖存器172輸出端的和連至早期流水線控制電路186第一輸出端的三個輸入端,及提供三個標號為「CE1時序」、「WE1時序」和「OE1時序」的時序信號的輸出端。
類似地,控制單元180包括一個允許地址鎖存器181、一個可選鎖存器182和一個時序狀態機183。允許地址鎖存器181具有一個連至允許地址總線的輸入端,用於接收允許地址信號。允許地址鎖存器181具有一個連至時序狀態和183輸入端和早期流水線控制電路186輸入端的輸出端。可選鎖存器182具有一個連至內部總線34的可選總線部分的輸入端和一個連至時序狀態機183輸入端和連至早期流水線控制電路186輸入端的輸出端。時序狀態機183具有連至允許地址鎖存器181輸出端、連至可選鎖存器182輸出端和連至早期流水線控制電路186的第二輸出端的三個輸入端,及提供三個標號為「CE2時序」、「WE2時序」和「OE2時序」的時序信號的輸出端。
早期流水線電路186具有一個連至允許地址總線用於接收允許地址信號的第一輸入端,一個連至可選總線的第二輸入端,及連至允許地址鎖存器171和181輸出端的輸入端及連至可選鎖存器172和182的輸入端。早期流水線控制電路186向時序狀態機173和183提供輸出量,以確定當兩個周期重疊時哪一個周期是活動的,因而避免不恰當的晶片選擇信號時序。
時序控制級100通過協調控制單元170和180的時序來實現存取的有效流水線操作。有兩個流水線檢測和控制機構。第一,早期流水線控制電路186向兩個時序狀態機173和183提供附加控制信號以防止非法定時順序,從而將具有例如圖5或圖7中所闡述的類型的存取那樣的重疊存取加以協調。具體說,早期流水線控制電路186檢測確定重疊存取是對同一區域還是不同區域,重疊存取周期是讀周期還是寫周期,並作為響應,提供恰當控制信號。第二,控制單元170和180檢查兩個所存取區域的特性以提供恰當的晶片選擇信號時序,一個特性是由來自可選總線的ITYPE域所決定的接口類型。另一特性是由來自可選總線的相關域所標明的該周期是由外部確認信號所結束,還是在預定數的等待狀態後從內部來結束。
圖2-10所闡述的電路參照圖11-19所闡述具體實施例將能更好地理解。如這裡所用的「激活(動詞)」或「激活(動作名詞)」是指一個採取其邏輯真狀態的信號。一個「高活動」信號是在邏輯高電平上活動或真實的。一個「低活動」信號是在邏輯低電平上活動或真實的,而低活動信號用上劃線來表示。信號「$」表明它後面的數字以16進位(以16為基數)表示。
注意有幾個名詞可能以不同方式引用。例如,名詞「區」和「塊」可交換使用。還有,除非特別註明,名詞「內存」(存儲器)包括易失性和非易失性內存兩者,還包括內存映象的外設。還有,類似名詞採用類似標號或不同圖之間採用類似參考數值。
表1參照圖1的單元定義了附加名詞,有助於理解下面描述的具體實施例表1
圖11以框圖形式闡述圖1晶片選擇電路32的具體實施例的一個功能框圖。晶片選擇電路32一般具有3個信號接口。首先,晶片選擇電路32接收一個標號為「復位」的對數據處理器30是全局量的復位信號,一套標號為「時鐘」的既包括內部操作時鐘信號又包括外部總線時鐘信號時鐘在內的時鐘信號,及一套標號為「初值」的信號。在復位時(復位信號為活動),數據處理器30將外部數據總線管腳加以採樣以便獲得初值,於是晶片選擇電路32使用該初值將它的某些寄存器設值。在復位時,其它寄存器採取省缺值,這在下面將進一步描述。
其次,晶片選擇電路32有一接口連至外部總線接口33。CPU晶片31對相應的內存映象地址完成讀和寫周期,從而對晶片選擇電路32內部的寄存器進行存取。在檢測到這類存取後,外部總線接口33通過一個特殊用途總線控制對晶片選擇電路32的存取,該特殊用途總線包括一個標號為「子總線地址」的地址總線輸入端和一個標號為「子總線數據」的雙向數據通路。其它用於存取晶片選擇電路32的寄存器的控制信號通過一套標號為「握手」的信號傳送至外部總線接口33或從後者傳送過來。用於存取內存映象外設寄存器的控制信號的產生是眾所周知的,所以不再描述。然而與外部總線傳送有關的不同握手信號是在外部總線接口33和晶片選擇電路32間傳送的。這些傳送握手信號在下面表2中加以描述。
表2
>這些信號中的有關部分將在下面更詳細地加以描述。
晶片選擇電路32還有一個用於接收由外部總線接口33向外部總線21提供的32位地址,標號為「地址」的輸入端,和另一個用於接收代表正在進行中的存取的屬性的信號、標號為「屬性」的輸入端。表3列舉了晶片選擇電路32所用具體屬性表3<
第三,晶片選擇電路32包括一個連向外部設備的包括13個標號為「CSBOOT」和「CS(0)-CS(11)」的信號的接口。這些信號將結合下面圖13作更詳盡描述。
如圖11中所闡述的,晶片選擇電路32一般包括兩部分一個寄存器存取電路190和一個晶片選擇生成單元200。寄存器存取電路190包括一個寄存器存取控制器192和一個寄存器地址解碼器194。寄存器存取控制器192是一個狀態機,用於為對晶片選擇電路32的寄存器的存取提供控制信號。寄存器地址解碼器194檢測晶片選擇電路32的哪個寄存器正被存取。寄存器存取電路190連至晶片選擇生成單元200,用於對進入晶片選擇寄存器195進行存取。
晶片選擇寄存器195是如圖12a和12b所闡述的內存映像寄存器,這些圖以框圖形式闡述晶片選擇寄存器195的地址映象。雖然這些寄存器在內存中的位置可任意定,但它們最好如此安排以便將來擴展。例如,晶片選擇電路32支持6個區域加一個專用子區域,並一共具有13個晶片選擇信號。對應於獨特區域的每一個晶片選擇信號既有基址寄存器又有可選寄存器;其它7個晶片選擇信號中每一個只具有可選寄存器。內存映象中與這些6個可選寄存器相鄰的位置空著備用,允許導出集成電路通過增加基址寄存器來支持附加功能。下面將結合圖13詳細描述晶片選擇電路32中寄存器的功能。
圖13以框圖形式闡述圖11的晶片選擇生成單元200。晶片選擇生成單元200一般包括兩個用於互連信號的總線,即解碼總線201和時序總線202。晶片選擇生成單元200還包括一個地址解碼級210、一個時序控制級230和一個管腳配備級240。晶片選擇生成單元200隻是圖8模塊化晶片選擇控制電路80的一個可能的實施例,它利用它的模塊化特性和可重新配備特性實施一個適用於高性能微控制器的晶片選擇電路。晶片選擇生成單元200定義6個使用6個地址解碼器的區域加上一個專用子區,並具有7個附加可選寄存器,用以定義用於對6個區域進行存取的晶片選擇信號。晶片選擇生成單元200還包括兩個用以實施一個雙深度流水線的控制單元,及具有13個可編程晶片選擇管腳。6個區域中的一個是一個特定的引導區域,它在復位時活動,以允許對存放引導子程序的非易失性內存進行存取。接著一部分引導子程序可對其餘區域編程。
晶片選擇生成單元200將區域配對以提供二級和三級區域嵌套,從而實施多級保護機構。為實施該特徵,晶片選擇生成單元200將引導區域(也稱為CSBOOT區域或區域0)定義為主區域,與區域1配對。與區域0配對後,區域1可用作位於區域0內具有較高優先級的子塊。區域2和4也是主塊,分別與區域3和5配對,後者能夠用作位於區域2和4內具有較高優先級的子塊。
此外,晶片選擇生成單元200具有一個附加的解碼器,用於定義一塊與區域0配對的專用子塊(「引導子塊」)。該專用子塊解碼器允許多至三級的嵌套。用於實施三級嵌套的優先級方案如下區域1的優先級比引導子塊高,而後備的優先級又比區域0高。
晶片選擇生成單元200中每個區域具有一個相關連的內存存取接口類型(「ITYPE」),後者是在相應的可選寄存器中的編碼域內所定義的。晶片選擇生成單元200支持8個不同接口類型。如被存取區域的可選寄存器中的ITYPE域將這8個合法存取類型中的一個加以編碼,則時序控制級230提供一套由存取類型所定義的相關連的時序信號。然而,ITYPE域也可編碼為處於備用狀態中。如ITYPE域為處於備用狀態中,例如由軟體錯誤所造成者,則相關連區域的解碼邏輯塊不允許存取發生。因此,晶片選擇生成單元200阻止這些錯誤不讓它們造成錯誤的內存存取。
一種接口類型允許對一個區域進行同步讀取並提供一個早期同步OE信號。這種存取類型稱為「具有允許早期同步輸出的同步接口」。這種接口類型適用於需要至少一個等待狀態的同步內存或內存映象外設。在使用這種存取類型的存取時,時序控制級230的一個控制單元在一個時鐘周期內激活信號OE,及外部總線接口33在隨後的時鐘周期內將數據鎖存。在對具有至少一個等待狀態的存儲裝置進行存取時,該存取類型允許晶片選擇生成單元200在第一周期的數據段完成之前完成第二周期的地址段。當對脈衝串式裝置進行存取時,時序控制級230支持一種相似的稱為「具有允許同步輸出的同步脈衝串式讀取」的存取類型。
另一種接口類型提供區域存取的早期重疊特徵。這種存取類型稱為「具有允許同步輸出及早其重疊的同步接口」的類型。對這種接口類型,時序控制級230在它為第二個存取提供OE信號的時鐘周期內完成隨後的存取的地址段,從而提前一個時鐘周期開始進行隨後的存取。
時序控制級230還通過強制一套流水線規則來支持雙深度的流水線深度。這些規則保證數據完整性和恰當的周期結尾。這些規則檢查以下因素例如,該存取是讀存取還是寫存取,該存取是否為對由晶片選擇生成單元200確定的區域的存取,該存取為對具有同步接口類型還是具有異步接口類型的區域的存取,及被存取裝置是否為脈衝串式裝置、能否掛起其數據和能否提供它自己的傳送確認信號。
管腳配備級240支持時序控制級230中兩個控制單元,允許實現雙深度流水線。管腳配備級240中13個管腳配備邏輯電路中的每一個電路標出是第一還是第二周期「據有」相關連的管腳。如周期屬性,例如像對在管腳功能寄存器中所編程的區域的存取的屬性那樣,得到滿足,則每個管腳配備邏輯電路使用與其所選管腳功能相關連的時序,以便在第一周期內提供晶片選擇信號。在第二周期內,如該周期屬性也得到滿足,則每個管腳配備邏輯電路進一步服從與所選管腳功能相關連的時序。
下面將順序考慮每一級,從而將晶片選擇生成單元200的這些和附加特徵更全面地進行描述。
地址解碼級210定義多至7個不同可編程區域。這些7個區域的第一個標為引導區域,或另一稱呼,為區域0。有兩個與引導區域相關連的寄存器211和212,及一個解碼邏輯塊224。標號為「CSBOOT基址寄存器」的寄存器211用作引導區域的基址寄存器。寄存器211使用32個可能使用的位中的20位。位0-19標誌引導區域的基址,其中寄存器211的位0對應於地址的位0,寄存器211的位1對應於地址的位1,並以此類推。在此將位排序方案中,地址的位O代表最高有效位,而位31代表最低有效位。
在復位時,如一個稱為中斷前綴位(IP)的初值位等於零,則此域取省缺值為$00000,如(IP=1)則此域取值為$FC000,並且在復位後是軟體上可編程的。注意,由省缺基址和省缺塊長度決定的省缺CSBOOT區域必須包括CPU晶片31的復位向量地址(初始程序計數器的內存地址)。雖然該區域的基址可編程成為地址映象中的任何地址,但它不應與數據處理器30中其它塊或模塊重疊。通電時,引導裝置的地址可能與一個內部模塊的地址匹配,例如數據處理器30中用於存放指令的一個內部EPROM。如出現此種情況,則數據處理器30所包括的附加電路(未示出)使內部存取取代外部存取。該內部存取用於提供引導指令,而晶片選擇發生單元200不完成外部存取。CSBOOT基址寄存器的位20-31留作備用。
標號為「CSBOOT可選寄存器」的寄存器212是用於引導區域的可選寄存器。它是一個32位寄存器,其各位的定義標於下表4中表4
如表4所標出的,表4-1至4-8將進一步闡述一些位域。在復位時BSIZE域對CSBOOT可選寄存器取省缺值為$F。然而在另一實施例中,只要CPU晶片31的復位向量仍位於省缺的CSBOOT區域內,BSIZE域可為其它值,例如1兆字節(1M)。表4-1闡述BSIZE域的編碼值表4-1
位4即SBLOCK位標明該區域是否為位於一塊較大主塊內的子塊。如下面表4-2所示,不同塊在一起配對表4-2
<
除以上配對外,如前面所指出的,引導區域具有一塊附加的未用子塊。如寄存器212中設置了SBLOCK位,則CS0塊為主塊而CS1塊為子塊。復位時,該位採取省缺值0。
CSBOOT可選寄存器的SUPER位在復位時採取省缺值為1,因為在管態中復位後,CPU晶片31將開始執行存取指令。復位時DSPACE位省缺值為0。CSBOOT可選寄存器的WP位在復位時的省缺值為1,因為一般情況下引導指令是非易失性只讀存儲器中讀取的。復位時C1位清零,因為從引導子程序來的指令一般可存入高速緩存。
復位時ACK-EN位設為1,而相應的初值位則提供初始TA-DLY域值。表4-3闡述TA-DLY域的編碼值表4-3<
>初始PS域也是一個初值,其編碼值闡述於下面表4-4中
表4-4
為CSBOOT區域復位時PCON域清零,其編碼值示於下面表4-5中表4-5
注意此處PCON域用作管腳功能寄存器130。在其它實施例中,可能使用單獨的管腳功能寄存器。
復位時字節域清零,其編碼值示於下面圖4-6表4-6
2、構詞規則只可選用下面一種方法書寫①依次寫完每個字的聲、韻、調代碼和表示結構區別的字母。
②依次寫完每個字的聲韻代碼和表示結構區別的字母。
③用表音文字速碼關於詞組的編碼方法書寫。
3、行文方法①字與字、詞組與詞組、字與詞組之間必須留下一個字母大小的空格。
②每段起頭的第一個字母必須用大寫。
③對所有的詞組也都可以按一個一個的單字來書寫④對漢字中的數字符號不作改動。如一、二、三、四……和阿拉伯數字1、2、3、4……都依照原樣書寫。但大寫的中文數字須用表音文字書寫,如壹、寫為yis⑤對漢語中的標點符號不作改動。
第二個區域標以CS1區域或稱為區域1。有兩個寄存器216和217與區域1相關連,並有一個解碼邏輯塊225。標號為「CS1基址寄存器」的寄存器216用作區域1的基址寄存器。寄存器216是一個32位寄存器。和寄存器211一樣,位0-19標明區域1的基址,其中位0相應於地址的位0,位1相應於地址的位1,以此類推,而位20-31則備用。復位時,此域省缺值為$00000。雖然該區域的基址可以編程為地址映象中任何地址,但它不應與數據處理器30中其它塊或模塊重疊。標號為「CS1可選寄存器」的寄存器217是區域1所用可選寄存器。它是一個32位寄存器,其編碼值與上面表4所定義的寄存器212的值相同。復位時,除PCON域外其它位省缺值都為0;如數據處理器30處於晶片選擇模式中,則PCON域取省缺值為$0,否則它取值為$3。
地址解碼級210包括相對應於其它5個區域的5個其它可選寄存器。圖13闡述分別標號為「CS1可選寄存器」和「CS5可選寄存器」、分別與區域1和區域5相關連的代表性的可選寄存器217和219。這些可選寄存器中的每一個都具有與寄存器212相同的位域定義。然而在復位時全部位和位域都清零。
標號為「CS0可選寄存器」的寄存器215是一個相對應於管腳配備級240中的一個管腳的可選寄存器,並只包括上面所定義的PCON、字節和區域域。如此管腳處於晶片選擇模式中,則復位時PCON域取省缺值2,否則它取值為3;字節域和區域取省缺值為0。包括標號為「CS6可選寄存器」和「CS11可選寄存器」的代表性寄存器220和221在內的未與任何具體區域關連的可選寄存器具有與寄存器215相同的位域定義。然而復位時,如相應的管腳處於晶片選擇模式中時,則PCON域清零,否則該域設為3。與寄存器215相似,這些附加可選寄存器中的字節和區域域在復位時都清零。
與引導區域相關連的是一個解碼邏輯塊224。寄存器211、212、213和214中的每一個將它們的位作為輸出量送至解碼邏輯塊224。此外,為使專用塊1成為塊0的配對子塊(在專用引導子塊之外),與塊1相關連的解碼邏輯塊225向解碼邏輯塊224的輸入端提供輸出信號。這些輸出信號是圖3中所闡述的多級保護機構所需地址匹配和屬性匹配信號。注意到主塊含有優先級強制電路58的功能。解碼邏輯塊224通過總線接口33自CPU晶片31接收輸入量地址和屬性。解碼邏輯塊224首先檢查地址是否位於引導區域內或專用引導子塊內。解碼邏輯塊224的做法是確定地址是否位於相應寄存器的基址域的BSIZE之內。其次,解碼邏輯塊224將輸入量屬性與相應可選寄存器中所編程的屬性相比較。
在所闡述的實施例中,地址是一個32位地址。解碼邏輯塊224將地址的一些最高有效位(其位數由BSIZE域決定)與基址寄存器中所屬值及可選寄存器中的BSIZE域進行比較。如所有最高有效地址位都匹配,則解碼邏輯塊224檢測到一個地址匹配。
解碼邏輯塊224將不同屬性解碼並如下所述將它們與寄存器212的相應位進行檢驗。解碼邏輯塊224將RD/WR屬性位於WP位進行比較;或者如RD/WR處於邏輯高位,或者如RD/WR處於邏輯低位而同時WP清零,則解碼邏輯塊224為此位檢測到一個屬性匹配。解碼邏輯塊224將SUPER屬性位與SUPER位進行比較,或者如果SUPER屬性處於邏輯高位,或者如果SUPER屬性處於邏輯低位而同時SUPER位清零,則解碼邏輯塊224為此位檢測到一個屬性匹配。解碼邏輯塊224將INSTR/DATA屬性位與DSPACE位比較,並且或者如果INSTR/DATA處於邏輯低位,或者如果INSTR/DATA處於邏輯高位而同時DSPACE位清零,則解碼邏輯塊224為此位檢測到一個屬性匹配。如所有編程的屬性與相應的屬性信號以此種方法相匹配,則解碼邏輯塊224檢測到一個屬性匹配。
如解碼邏輯塊224在一個區域內將地址匹配和屬性匹配兩者都檢測到,則它檢查是否有一塊更高優先級的子塊將取代此匹配。例如,如解碼邏輯塊224檢測到一個對區域0和未用引導子塊兩者內地址的存取,則在寄存器214中定義的那些屬性將決定是否進行存取。即使在區域0既有地址匹配又有屬性匹配,但如在未用引導子塊內沒有屬性匹配,則解碼邏輯塊224仍將阻止周期出現。
時序控制級230包括兩個控制單元231和232,及一個連在控制單元231和232之間的早期流水線控制單元233。時序控制級230用作一個向外部總線21提供晶片選擇信號的存取狀態機,而每個控制單元231和232都有一個輸入端連至解碼總線201,用於從地址解碼級210中的解碼邏輯塊中接收解碼信號,以標明正在進行中的總線周期是否與6個可用區域中的一個或未用引導子塊的地址及屬性相匹配。如其中一個區域檢測到匹配,時序控制級230的控制單元中的一個單元向時序總線202提供順序時序信息,以反映用於給定編程的接口類型的恰當時序。
控制單元231向時序總線202提供三個時序控制信號,即CE1時序、OE1時序和WE1時序。相類似,控制單元232向時序總線202提供三個時序控制信號,即CE2時序、OE2時序和WE2時序。
例如,地址解碼級210中的解碼邏輯塊224檢測到一個對區域0的存取,並作為響應向解碼總線201提供控制信號。在時序控制級230中,例如控制單元231那樣的控制單元與該總線周期關連起來,並為在此存取未決期間的存取向時序總線202提供時序信號。在第一存取期間可能進行第二存取,地址解碼級210中的一個地址解碼器可能檢測到一個對相應的可編程區域的存取而該存取具有與其可選寄存器中所編程的屬性相匹配的屬性,以及該地址解碼器向解碼總線201提供控制信號。由接口類型所決定,控制單元232接著可能開始向時序總線202提供時序信號,以便為此存取將一個或多個晶片選擇控制信號加以重疊。
決定於擁有該周期的區域的可選寄存器的ITYPE域,每個時序控制單元為每個晶片選擇功能提供時序信號。用於晶片選擇電路32所實施的接口類型的信號定時可結合圖14-19更好地理解。在這些時序圖的每一個圖中,連續的由低到高時鐘轉變標以t1、t2、t3等等。地址、數據和控制信號的活動時間或合法時間標以數字以識別存取。注意這些時序圖代表典型信號定時。由於集成電路生產過程條件不同,實際信號定時波形將不同。有些信號由外部總線接口33所提供,但也加以闡述以利於更好理解接口。在圖14-19中,箭頭代表信號依賴關係或因果關係。
圖14闡述接口類型$0的時序圖,這種普通異步接口用於對零等待狀態、不用時鐘定時的裝置(即其輸出緩存關斷時間小於或等於一個時鐘周期的裝置)的存取。在整個存取期間,該異步接口要求地址和晶片選擇信號(CE及OE、WE兩者之一)一直保持合法。因此在前一存取完成之前,不可能對同一裝置進行連續的存取,因此不允許重疊存取。圖14闡述了一個讀周期後跟隨一個寫周期。在讀周期和寫周期兩者的期間,被存取裝置在信號CE激活之後例如CE1的下降沿之後的一個延遲時間內使用一個例如A1的地址。在讀周期內,被存取裝置在信號OE激活之後例如OE1下降沿之後的一個延遲時間內將數據作為輸出量送出(也作為送至外部總線接口33的輸入量)。在寫周期內,被存取裝置在信號WE不激活之後例如WE2的上升沿之後的一個延遲時間內將諸如D2(它是外部總線接口33的一個輸出量)那樣的數據單元加以鎖存。異步存儲裝置的一個例子是由Motorola,Inc.所提供的MCM62995A內存晶片,它除具有一個允許鎖存地址(ALE)信號外還能工作於異步模式。
接口類型$1與類型$0類似,但所應用的普通異步接口用於對其輸出緩存關斷時間等於兩個時鐘周期的裝置進行存取。因此適用於此類存取的信號定時類似於圖14所闡述內容但不全同。在讀周期內,在允許隨後的裝置將數據送至外部總線21上之前,晶片選擇電路32在它使信號OE不激活之後將等待一個時鐘周期。在隨後的寫周期內,在使先前的OE不激活之後一個時鐘周期以前,晶片選擇電路32將禁止外部總線接口33送出數據。
圖15闡述接口類型$2的時序圖,這是具有異步OE的同步接口。具有此種同步接口的存儲裝置具有一個用於接收時鐘信號的輸入端,並在由低到高的時鐘轉變時將地址和數據鎖存。在讀存取期間,存儲裝置對信號OE作出響應,異步地提供數據。圖15闡述一個讀周期後跟隨一個寫周期。除晶片選擇信號外,具有這種接口存取類型的裝置檢測到一個標號為「WR」的由外部總線接口33提供的寫信號。用於在地址段確定該存取是讀存取還是寫存取。因此在t2時被存取裝置檢測到該存取是讀存取並將A1鎖存。晶片選擇電路32將信號OE激活,而OE1的下降沿使被存取裝置提供數據,後者輸入至外部總線接口33。
使用這類接口的存儲裝置具有將輸入量地址鎖存的能力,以便使對同一個裝置的下一個存取可與前一個存取相重疊,這樣的裝置可在讀存取時將其內部數據掛起,直至信號OE激活時止。因此連續寫周期的地址段可與讀周期的數據段的末尾相重疊。晶片選擇電路32在t3之前激活信號CE,以使被存取裝置將地址A2鎖存。由於信號WR在t3時活動,被存取裝置檢測到一個寫存取。在讀存取的數據較完成後,晶片選擇電路32激活信號WE,以使被存取裝置將數據鎖存,從而在t5時完成寫周期的數據段。
圖15所闡述的時序只是孤立地表現了晶片選擇電路32的將兩個連續的接口類型$2存取重疊起來的能力。然而數據處理器30並不允許這種重疊,以便提高額外保護防止可能的總線競爭,在數據處理器30中,外部總線接口33並不足夠早地向晶片選擇電路32提供恰當的能使晶片選擇電路32將第二個存取的地址段重疊的握手信號。因此實際上外部總線接口33並不提供A2,及晶片選擇電路32在t4前的一個建立時間之前並不激活CE和WR信號。
稱為「具有早期同步OE的同步接口」的接口類型$3先前在圖5中曾闡述過。注意對於接口類型$3講,晶片選擇電路32以與接口類型$2相同的方式完成寫周期,這已在圖15中闡述過。
稱為「具有固定脈衝串的脈衝串式區域」的接口類型$5具有一個「類型I」的脈衝串式接口並使用一個異步OE信號。晶片選擇電路32實施一個4周期的固定脈衝串長度。類型I脈衝串式接口分別使用OE和WE信號使被存取裝置送出數據或將數據鎖存進來。該接口還需要一個BDIP信號以控制被存取裝置輸出下一個脈衝串拍的時間。類型I脈衝串式接口裝置具有一個地址鎖存器,因此對該裝置的下一個存取的地址可與前一存取地址重疊;也即,在時鐘由低到高轉變時刻將地址鎖存之後,存取的地址不必再保持為合法。
圖16闡述一個使用接口類型$5的讀周期的時序圖例子。在圖16所示例子中,該區域的相應的可選寄存器中的ACK-EN位配備為允許外部確認信號清零。在時間點t2,被存取裝置同步地將地址鎖存並在由信號AACK的激活而定的t2時刻完成地址段。然而在t2時被存取裝置保持信號TA不活動,因此晶片選擇電路32必須插入一個等待狀態。隨後,在t3時被存取裝置激活信號TA以標明它準備完成數據段,並提供第一數據單元D10。外部總線接口33激活信號BDIP以標明它在等待隨後時鐘由低到高轉變時的脈衝串下一拍。外部總線接口33分別在轉變時刻t4、t5和t6將連續的數據單元D11、D12和D13鎖存。外部總線接口33在t6之前使信號BDIP不激活,標明數據單元D13是脈衝串的最後一拍。被存取裝置保持數據單元D13合法,直至使信號OE不激活之後一個延遲時間止。
當同一裝置在連續兩個周期內被存取時,該接口允許隨後的存取的地址段與先前的存取的數據段重疊。被存取裝置在先前脈衝串的最後一拍中檢測到第二個存取。因此,如圖16所闡述的,外部總線接口33提供一個隨後地址A2及晶片選擇電路32在t3前一個建立時間內激活信號CE,然後被存取裝置在t6前一個建立時間內提供信號AACK,從而完成第二個存取的地址段。
圖17闡述使用類型I脈衝串式接口(例如接口類型$5)的寫周期的時序圖。與圖16一樣,相應的可選寄存器中區域的ACK-EN位配備為允許外部確認信號清零。在t2時,被存取裝置將地址同步地加以鎖存並在由信號AACK的激活而定的t2時刻完成地址段。在t2時被存取裝置激活信號TA以標明它準備完成數據段,並將第一個數據單元D10鎖存。接著激活信號BDIP以標明外部總線接口33將在隨後的時鐘由低到高轉變時刻提供脈衝串的下一拍。數據處理器30分別在轉變時刻t3、t4和t5送出連續的數據單元D11、D12和D13。t5時信號BDIP不活動,標明數據單元D13是脈衝串最後一拍。如圖16一樣,圖17闡述重疊存取的地址段,該第二存取的地址段在t5時脈衝串的最後一拍期間結束。
稱為「具有可進行流水線操作的OE的固定脈衝串」的接口類型$7支持先前圖6中所闡述過的讀存取。該接口類型能掛起其內部數據,直至信號OE激活時止。該接口可用作一個異步接口,但只在由TA-DLY域所定義的數量的等待狀態後和在信號OE激活後才提供數據。接口類型$7是一個類型I接口,其寫周期時序闡述於圖17中。
接口類型$8具有一個「類型II」脈衝串式接口,後者並不需要一個OE信號,作為替代,它使用LAST信號。當在時鐘由低到高轉變之前一個建立時間內將信號LAST激活時,一個類型II裝置隨著時鐘的轉變將其數據輸出緩存置於高阻抗狀態。在裝置的存取等待時間或等待狀態期間,CE信號必須保持活動。這類裝置也需要一個TS信號。
圖18闡述一個使用存取類型$8的讀接口的時序圖。在所闡述的例子中,被存取裝置具有兩個等待狀態,並返回它自己的確認信號。直至當被存取裝置激活信號AACK的t3時,地址段才結束。在類型II脈衝串式接口下,在裝置的等待時間的期間內信號CE一直保持活動,直至數據段開始時的t3以後時止。這種接口存取類型沒有OE信號。從t4開始,當時鐘連續由低到高轉變時,被存取裝置將信號TA激活。在t7時外部總線接口33激活信號LAST,從而結束4拍脈衝串式傳送。
該接口允許隨後的存取的地址段與先前的存取的數據段重疊。因此如圖18所闡述的,晶片選擇電路32提供隨後地址A2並在t4前一個建立時間內激活信號CE。被存取裝置檢測到隨後的存取的地址段,並在由信號AACK的激活所定的t7時刻將A2鎖存。然而信號CE必須在CE2期間保持活動,直至發生第二存取的數據段(t7的隨後時間)時止。這種類型的被存取裝置具有一個地址鎖存器,所以它可以早在t7就鎖存A2,從而完成下一個地址段。
圖19闡述使用存取類型$8的寫接口的時序圖。再者,被存取裝置具有兩個等待狀態,並在t3時刻返回包括AACK在內的它自己的確認信號,以完成傳送的地址段。如在類型II脈衝串式讀周期內一樣,在裝置等待時間的期間信號CE保持活動,因此CE一直保持活動,直至數據段開始的t3之後。從t4開始,外部總線接口33在連續的時鐘周期內提供數據單元D10、D11、D12和D13,同時被存取裝置將這些數據單元鎖存。自t4開始,被存取裝置在連續的時鐘周期內激活信號TA,從而標明脈衝串每一拍數據段的結束。猶如類型II脈衝串式讀周期中一樣,在t7時外部總線接口33激活信號LAST,從而完成此4拍脈衝串式傳送。隨後周期的地址可用圖18所闡述的同樣方式加以重疊。
稱為「具有同步OE和早期重疊的同步接口」接口類型的接口類型$9如前面圖7所闡述那樣完成讀存取。此類型相似於接口類型$3,不同之外是它將第2個存取的地址段與先前存取的早期同步OE重疊起來。一個接口存取類型$9寫存取與前面圖15所闡述的普通同步寫存取相同。
接口類型$4、$6和$A-$F保留不用。如時序控制級230中的活動控制單元檢測到一個對具有這些保留類型中的一個的接口進行存取,它禁止產生任何晶片選擇時序控制信號,因此晶片選擇生成單元200不完成任何相應的內存存取。因此由於軟體錯誤造成的此域中不正確編碼將不會引起非法存取。
由於晶片選擇電路32支持一系列接口,因此它非常靈活。然而晶片選擇電路32所支持的一套接口在不同實施例中可能不同,以滿足不同應用要求。此外,晶片選擇電路32支持高度流水線操作的接口,從而提高數據處理器30的性能。具體說,接口存取類型$3、$7和$9比已知接口很大地改善了性能。使用常規順序的(用時鐘定時的)電路設計技術,將現有存儲裝置改造使之遵照此處所闡述的時序,即可做出與接口存取類型$3、$7和$9一起使用的存儲裝置。
為處理重疊存取,早期流水線控制單元233檢測兩種主要情況。第一種情況是對同一區域或晶片進行存取的情況,這些存取最多被允許將下一個地址段與第一個存取的數據段重疊(如果第一個存取的等待時間可以確定,即ACK-EN=1)。例如,如第一個存取是對一個流水線操作裝置進行的,則對同一裝置的第二個存取將等待,直至第一個存取準備完成其數據段時止。然而第二個存取的地址(或CE)能與第一個存取的數據重疊。
第二種情況是對兩個不同區域或晶片的兩個存取。第二種情況中,為將對兩種不同區域或晶片的存取重疊起來,時序控制級230強制一套流水線操作規則,以保證數據完整性和恰當的周期結束。下面表5更詳細地描述這些規則。
表5
規則1涉及對一個區域的讀存取,後跟隨一個對另一區域的另一個讀存取的情況。此情況中,晶片選擇電路32將第二讀取與第一讀取進行流水線操作。
規則2涉及一個寫存取後跟隨一個讀存取的情況。此情況中,晶片選擇電路32將第二讀取與第一讀取進行流水線操作。
規則3涉及單拍寫存取後跟隨另一個寫存取的情況。此情況中,有些裝置要求在地址或CE成為合法後的一個時鐘周期內可以使用寫周期的數據。如不行,則裝置使寫周期作廢。如兩個存取都由晶片選擇電路32加以結束(即兩個區域的可選寄存器中都設置ACK-EN位),則晶片選擇電路32在第一寫周期的最後一個數據段時即激活第二寫周期的CE,從而將存取重疊。如情況為一個脈衝串式寫後跟隨另一個寫,則晶片選擇電路32在第一寫周期標明已激活最後數據拍(BDIP或LAST)之後為第二寫周期內激活CE。
規則4涉及讀周期後跟隨一個寫周期的情況。晶片選擇電路32在讀周期結束之前將寫周期的CE激活,從而將存取重疊。然而在所闡述的實施例中,外部總線接口33並不向晶片選擇電路32提供允許重疊所用的恰當握手信號。在為寫周期激活CE之前外部總線接口33並不提供寫周期的地址信號。
規則5涉及兩個連續的存取,其中有一個存取的等待時間(即等待狀態的數量)是未知數(即其ACK-EN被清零)。此情況中,只當第二存取的區域具有的接口類型能在總線可用之前掛起數據時,晶片選擇電路32才將兩個存取進行流水線操作。例如,第一存取是對其ACK-EN清零的區域的存取,及第二存取是對其ACK-EN設置並具有接口存取類型$8的區域的存取。此情況中,因第二區域不可以在沒有OE時掛起其數據,因此在第一存取完成前晶片選擇電路32必須將第二存取掛起。注意如果第一存取是對其等待時間為未知數的區域的存取及第二存取是對同一區域,則晶片選擇電路32等待一個外部AACK,後者允許晶片選擇電路32將對於同一區域的隨後的CE激活。
規則6涉及的情況是第一存取的區域未被晶片選擇電路32定義,例如一個專用動態RAM(DRAM)控制器,及第二存取是對由晶片選擇電路32所定義的另一區域。此情況中,第一區域提供它自己的晶片選擇信號,所以晶片選擇電路32不知道接口存取類型和等待時間。因此晶片選擇電路32不將第二存取和第一存取進行流水線操作。
規則7涉及一個對脈衝串式區域的固定4拍脈衝串式讀存取,後面跟隨一個對其它區域的讀取。此情況中,如第二存取的區域可進行流水線操作並能掛起其數據,則晶片選擇電路32將第二存取進行流水線操作。注意如果第二存取具有接口存取類型$8,則它不能掛起其數據及晶片選擇電路32將不使第二存取進行流水線操作。
規則8涉及對同步區域的第一存取,跟隨一個對異步區域的第二存取。此情況中,由於第二存取不能進行流水線操作,因此晶片選擇電路32不使第二區域進行流水線操作。
規則9涉及對異步區域的第一存取,此情況中,由於在第一存取完成前外部地址和數據總線兩者必須可供第一存取使用,因此晶片選擇電路32不使第二存取與第一個流水線操作。
注意晶片選擇電路32與外部總線接口33一起用於實施這些流水線操作規則。在某些情況下,外部總線接口33進行控制。對規則4講,結合上面圖15所描述的,晶片選擇電路32支持流水線操作但外部總線接口33不支持。對於規則9講,外部總線接口33也並不足夠早地提供用於流水線操作的AACK或TA握手。在其它情況下,晶片選擇電路和32檢測到不兼容的存取。
管腳配備級240包括13個管腳配備邏輯電路,包括代表性的管腳配備邏輯電路和241、242、243和248。每個管腳配備邏輯電路具有一個連至解碼總線201的第一輸入端,一個連至時序總線202的第二輸入端和一個用於提供未用晶片選擇信號的輸出端。管腳配備邏輯電路241提供一個標為「CSBOOT」的輸出信號。管腳配備邏輯電路242提供一個標為「CS0」或另一標號「CSBOOT OE」的輸出信號。管腳配備邏輯電路243提供一個標為「CS1」的輸出信號。管腳配備邏輯電路248提供一個標號為「CS11」的輸出信號。
晶片選擇電路32可編程地通過13個集成電路管腳提供晶片選擇信號。然而,正如高集成度數據處理器或微控制器中常規做法一樣,這些管腳與其它管腳功能或數據處理器30的埠共享以及能可編程地選擇以便將輸出信號加以配備,用於不同終端用戶的應用。
雖然本發明是在最佳實施例的範圍內描述的,熟悉技術的人清楚地知道本發明可用不同方式修改並在上面具體描述的範圍之外組成許多實施例。相應地,所附權利要求書用於包括不背離本發明實質和範圍的對本發明的所有修改。
權利要求
1.一種具有可編程內存存取接口類型的集成電路微處理器(30),包括一個中央處理單元(CPU)(31),用於執行指令和存取內存;一個連至所述CPU(31)並與一個內存區域相關連的可選寄存器(61),所述可選寄存器(61)存放一個編碼值(62);一個連至所述可選寄存器(61)的解碼器(63),用於將所述編碼值(62)加以解碼,以對存取所述內存區域的所述CPU(31)作出響應,提供一個解碼信號,所述解碼信號採取眾多狀態中的一個,其中包括合法狀態和備用狀態;以及一個連至所述CPU(31)和連至所述解碼器(63)的存取控制器(64),或者當所述解碼信號處於合法狀態時所述存取控制器(64)用於激活眾多外部控制信號,所述外部控制信號具有由相對應於所述解碼信號的可編程接口類型所決定的時序特性,或者當所述解碼信號處於備用狀態時所述存取控制器(64)用於保持所述眾多外部控制信號不活動,此處集成電路微處理器(30)防止軟體錯誤造成未經定義的內存存取。
2.權利要求1的集成電路微處理器(30),其中所述眾多外部控制信號包括一個允許晶片操作信號,一個允許輸出信號和一個允許寫信號。
3.權利要求1的集成電路微處理器(30),還包括一個連至所述CPU(31)和與第二內存區域相關連的第二可選寄存器,所述第二可選寄存器存放一個第二編碼值;所述解碼器(63)進一步連至所述第二可選寄存器,用於將所述第二編碼值加以解碼以便對存取所述第二內存區域的所述CPU(31)作出響應,提供一個第二解碼信號,所述第二解碼信號採取眾多狀態中的一個,包括合法狀態和備用狀態;以及所述存取控制器(64)對存取所述第二內存區域的所述CPU(31)做出響應,或者當所述第二解碼信號處於合法狀態時用於激活眾多外部控制信號,所述外部控制信號具有由相對應於所述第二解碼信號的可編程接口類型所決定的時序特性,或者當所述第二解碼信號處於備用狀態時所述存取控制器(64)用於保持所述眾多外部控制信號不活動。
4.一種用於同步地存取內存的方法,包括以下步驟在第一時鐘周期內為第一內存存取提供第一地址;激活一個第一控制信號,以標明在所述第一時鐘周期後預定數量的等待狀態後的第二時鐘周期內的所述第一內存存取的一個數據段;以及在緊接所述第二時鐘周期後的第三時鐘周期內接收由所述第一地址所存取的第一數據單元。
5.權利要求4的方法,其中所述激活所述第一控制信號的步驟包括激活一個允許輸出控制信號的步驟。
6.權利要求4的方法,還包括激活一個用於標明所述第一內存存取的地址段的第二控制信號的步驟。
7.權利要求6的方法,其中所述激活所述第二控制信號的步驟包括激活一個允許晶片操作信號的步驟。
8.權利要求6的方法,還包括以下步驟在所述第三時鐘周期內為第二內存存取提供第二地址;以及激活所述第二控制信號,以標明在所述第三時鐘周期內所述第二內存存取的一個地址段。
9.權利要求4的方法還包括以下步驟激活一個第二控制信號,以標明在所述第三時鐘周期內正在進行中的一個脈衝串數據周期;以及在所述第三時鐘周期隨後的第四時鐘周期內接收一個第二數據單元。
10.權利要求4的方法還包括以下步驟激活一個第二控制信號,以標明在包括所述第三時鐘周期在內的第一眾多時鐘周期內正在進行中的一個脈衝串數據周期;以及在隨所述第三時鐘周期之後並與所述第一眾多時鐘周期相對應的第二眾多時鐘周期內接收眾多脈衝串數據單元。
全文摘要
一種集成電路微處理器(30)使用內部產生的具有可編程存儲器存取接口類型的控制信號對外部存儲器進行存取。一個與內存區域相關連的寄存器(61)存放一個編碼值。在對該內存區域進行存取時,一個解碼器(63)將編碼值加以解碼以提供解碼信號。如解碼信號處於合法狀態,則一個存取控制器(64)將具有對應於合法狀態的時序的外部控制信號加以激活。如解碼信號處於備用狀態,則存取控制器(64)將外部控制信號保持為不活動,不讓存取發生。
文檔編號G06F15/76GK1139238SQ9511667
公開日1997年1月1日 申請日期1995年8月30日 優先權日1994年8月31日
發明者秦煌烈, 麥可·E·格萊登, 小傑拉爾德·E·沃克 申請人:摩託羅拉公司