專利名稱:微處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器,特別是涉及在內(nèi)部裝有存儲(chǔ)器及超高速緩沖存儲(chǔ)器的微處理器中,從外部訪問(wèn)該存儲(chǔ)器,并將指令/數(shù)據(jù)登記在超高速緩存器中的總線接口。
迄今,內(nèi)部裝有存儲(chǔ)器的微處理器是已知的。例如,圖27是表示內(nèi)部裝有RAM的微處理器的結(jié)構(gòu)框圖。微處理器201備有CPU1、內(nèi)裝RAM29、總線59及總線接口裝置(BIU)39。內(nèi)裝RAM29例如是程序RAM(包括ROM),或是數(shù)據(jù)RAM(包括ROM)。但在內(nèi)裝RAM29中能使用SRAM,以便能用1個(gè)時(shí)鐘進(jìn)行訪問(wèn)。用地址指定內(nèi)裝RAM29的存儲(chǔ)區(qū),用指令指示對(duì)它的訪問(wèn)。
也有把外部存儲(chǔ)器4通過(guò)總線60設(shè)在微處理器201的外部的。外部存儲(chǔ)器4例如使用RAM,為了控制它,往往將DRAM控制器、DMAC(DMA控制器)等安裝在微處理器201內(nèi)。
圖28是表示內(nèi)部裝有超高速緩沖存儲(chǔ)器(與下簡(jiǎn)稱"超高速緩存器")的微處理器的結(jié)構(gòu)框圖。微處理器202備有CPU1、超高速緩存器28、總線59及BIU39,外部存儲(chǔ)器4通過(guò)總線60設(shè)在微處理器202的外部。超高速緩存器28對(duì)微處理器202使用的指令或數(shù)據(jù)從外部存儲(chǔ)器4進(jìn)行超高速緩存。
當(dāng)然,也可將內(nèi)部RAM29和超高速緩存器28兩者裝在內(nèi)部,超高速緩存器28從內(nèi)部RAM29進(jìn)行緩存??墒?,內(nèi)部RAM29由ROM或SRAM構(gòu)成,用大約1個(gè)時(shí)鐘就能進(jìn)行訪問(wèn),所以不需要進(jìn)行超高速緩存。
SRAM的1單元面積比DRAM的大,不可能集成大容量。因此,必須將CPU核心和DRAM集成在1個(gè)芯片上,成為集成了大容量存儲(chǔ)器的微處理器。這時(shí)DRAM的訪問(wèn)速度慢,存儲(chǔ)器訪問(wèn)的時(shí)間成為CPU性能下降的重大原因。
不僅有微處理器內(nèi)部安裝的CPU,而且外部還有總線主控器(能通過(guò)總線訪問(wèn)存儲(chǔ)器的控制裝置)時(shí),如果在各總線主控器和存儲(chǔ)器之間個(gè)別地傳遞信號(hào),則存在微處理器上所必要的管腳數(shù)增多的問(wèn)題。
本申請(qǐng)的發(fā)明就是要解決這個(gè)問(wèn)題,其目的在于將DRAM及超高速緩存器安裝在內(nèi)部,將大容量、低速的DRAM和小容量、高速的超高速緩存器集成在1個(gè)芯片上,發(fā)揮CPU的性能。另一個(gè)目的在于提供一種通過(guò)選擇其緩存器形態(tài)而能選擇緩存器數(shù)據(jù)種類的微處理器、及即使將用于裝在內(nèi)部的存儲(chǔ)器總線主控器設(shè)在外部或連接外部存儲(chǔ)器,不增加管腳數(shù)也能改變內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器使用方法(將主程序、數(shù)據(jù)等存入哪個(gè)存儲(chǔ)器)的微處理器、以及內(nèi)部有多個(gè)總線主控器的微處理器。
本發(fā)明的第1方面所述的微處理器備有內(nèi)部存儲(chǔ)器;連接到上述存儲(chǔ)器上的內(nèi)部總線;通過(guò)上述內(nèi)部總線訪問(wèn)上述內(nèi)部存儲(chǔ)器的內(nèi)部總線主控器;以及控制上述內(nèi)部總線工作的總線接口。而且外部總線主控器及外部存儲(chǔ)器通過(guò)外部總線連接在上述微處理器的外部。上述微處理器還備有登記上述內(nèi)部存儲(chǔ)器和上述外部存儲(chǔ)器數(shù)據(jù)的超高速緩沖存儲(chǔ)器。上述總線接口的特點(diǎn)為(a)具有與上述內(nèi)部總線寬度相等的緩沖器,(b)協(xié)調(diào)來(lái)自上述外部總線主控器對(duì)內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求和上述內(nèi)部總線主控器對(duì)內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求,(c)上述緩沖器和外部總線主控器在通過(guò)上述外部總線訪問(wèn)期間,接受來(lái)自內(nèi)部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器和上述超高速緩存器的訪問(wèn)請(qǐng)求。
根據(jù)本發(fā)明的第2方面,在第1方面所述的微處理器中,上述外部總線主控器訪問(wèn)上述內(nèi)部存儲(chǔ)器時(shí)和上述內(nèi)部總線主控器訪問(wèn)上述外部存儲(chǔ)器時(shí),使控制兩者的訪問(wèn)的控制信號(hào)共用。
根據(jù)本發(fā)明的第3方面,在第1方面所述的微處理器中,當(dāng)上述外部總線主控器指定的多個(gè)地址越過(guò)由上述緩沖器的容量決定的地址邊界時(shí),存儲(chǔ)在上述緩沖器中的數(shù)據(jù)被暫時(shí)放出來(lái)。
本發(fā)明的第4方面所述的微處理器備有內(nèi)部存儲(chǔ)器;連接到上述存儲(chǔ)器上的內(nèi)部總線;通過(guò)上述內(nèi)部總線訪問(wèn)上述內(nèi)部存儲(chǔ)器的第1及第2內(nèi)部總線主控器;以及控制上述內(nèi)部總線工作的總線接口。而且上述總線接口有存儲(chǔ)器訪問(wèn)控制裝置,用來(lái)當(dāng)上述第1內(nèi)部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求有效時(shí),便使上述第2內(nèi)部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求無(wú)效。
本發(fā)明的第5方面所述的微處理器備有內(nèi)部存儲(chǔ)器;連接到上述內(nèi)部存儲(chǔ)器上的內(nèi)部總線;連接到上述內(nèi)部總線上的超高速緩沖存儲(chǔ)器;通過(guò)上述內(nèi)部總線訪問(wèn)上述內(nèi)部存儲(chǔ)器的內(nèi)部總線主控器;以及控制上述內(nèi)部總線工作的總線接口。而且外部總線主控器及外部存儲(chǔ)器通過(guò)外部總線連接在上述微處理器的外部。上述微處理器還備有登記上述內(nèi)部存儲(chǔ)器和上述外部存儲(chǔ)器數(shù)據(jù)的超高速緩沖存儲(chǔ)器。上述總線接口根據(jù)上述內(nèi)部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求及上述外部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求和指定超高速緩存器方式的信息,產(chǎn)生指定上述超高速緩沖存儲(chǔ)器的緩存器對(duì)象的登記信號(hào)。
圖1是本發(fā)明的實(shí)施例1的框圖;圖2是指令的結(jié)構(gòu)例的模式圖;圖3是指令的處理模式圖;圖4是指令的輸送框圖;圖5是指令的輸送框圖;圖6是表示CPU1從外部存儲(chǔ)器4讀出數(shù)據(jù)時(shí)的通信規(guī)定的時(shí)間圖;圖7是表示CPU1將數(shù)據(jù)寫(xiě)入外部存儲(chǔ)器4時(shí)的通信規(guī)定的時(shí)間圖;圖8是表示將數(shù)據(jù)從外部總線主控器41寫(xiě)入DRAM27時(shí)的通信規(guī)定的時(shí)間圖;圖9是表示依靠外部總線主控器41的訪問(wèn)結(jié)束時(shí)的時(shí)間圖;圖10是緩沖器301的結(jié)構(gòu)框圖;圖11是表示外部總線主控器41從DRAM27讀出數(shù)據(jù)時(shí)的通信規(guī)定的時(shí)間圖;圖12是當(dāng)?shù)刂吩竭^(guò)地址邊界時(shí)進(jìn)行工作的裝置框圖;圖13是當(dāng)?shù)刂吩竭^(guò)地址邊界時(shí)表示工作的時(shí)間圖;圖14是當(dāng)?shù)刂吩竭^(guò)地址邊界時(shí)表示工作的時(shí)間圖;圖15是表示微處理器101的地址空間的模式圖;圖16是表示內(nèi)部控制寄存器的地址空間的一部分的模式圖;圖17是數(shù)據(jù)MSPR、MDRR、MCCR的詳細(xì)結(jié)構(gòu)的模式圖;圖18是控制塊303的局部結(jié)構(gòu)框圖;圖19是模式地表示微處理器101的結(jié)構(gòu)的框圖;圖20是模式地表示微處理器101的結(jié)構(gòu)的框圖;圖21是模式地表示微處理器101的結(jié)構(gòu)的框圖;圖22是表示更新計(jì)時(shí)器26的連接關(guān)系的框圖23是表示外部主控器41及CPU1的讀出時(shí)間圖;圖24是微處理器102的結(jié)構(gòu)例的框圖;圖25是采用哈佛結(jié)構(gòu)的微處理器的結(jié)構(gòu)例的框圖;圖26是表示2個(gè)微處理器并存形態(tài)的框圖;圖27是表示現(xiàn)有技術(shù)的框圖;圖28是表示現(xiàn)有技術(shù)的框圖。
實(shí)施例1圖1是表示本發(fā)明的實(shí)施例1的微處理器的簡(jiǎn)要結(jié)構(gòu)的框圖。微處理器101有DRAM27、超高速緩存器28、CPU1、指令排隊(duì)(IQ)8、選擇器7、積和運(yùn)算部(MACMultiply and Accumulater)6、BIU3及PLL11。
CPU1例如是處理32位數(shù)據(jù)的RISC型的微處理器核心,指令長(zhǎng)度為16位或32位。IQ8有例如128位×2個(gè)入口的結(jié)構(gòu),從總線ID<0127>輸入數(shù)據(jù)(包括指令),以16位或32位的形態(tài)通過(guò)總線I<031>輸送給CPU1。
圖2是表示指令結(jié)構(gòu)例的模式圖。因?yàn)椴辉试S越過(guò)地址邊界的指令,所以指令的配置方法只有圖2所示的2種。
選擇器7從載于總線ID<0127>上的128位的數(shù)據(jù)中只選擇必要的32位數(shù)據(jù),輸送給CPU1,或?qū)腃PU1輸出的32位的數(shù)據(jù)輸出到總線ID<0127>上的適當(dāng)位置。這些32位數(shù)據(jù)的傳遞是通過(guò)總線DO<031>進(jìn)行的。MAC6用1個(gè)時(shí)鐘處理例如32位×16位+56位的積和運(yùn)算,它跟隨著CPU1設(shè)置。
超高速緩存器28例如由SRAM構(gòu)成,采用寫(xiě)回(write back)方式,即只對(duì)超高速緩存器進(jìn)行寫(xiě)入,當(dāng)由超高速緩存器變更了的數(shù)據(jù)成為置換對(duì)象時(shí),將其寫(xiě)入主要存儲(chǔ)裝置的方式。有TAG部,這時(shí)保持應(yīng)該超高速緩存的數(shù)據(jù)地址的一部分(tag)(特征)和valid(臟)位(有效位)、dirty位。數(shù)據(jù)一被登記(fill)(填寫(xiě))到超高速緩存器28中,valid位便被置位,如果把新的數(shù)據(jù)存入登記了的區(qū)域中,則dirty位被置位。在超高速緩存器命中了(cache hit)的情況下,用1個(gè)時(shí)鐘就能夠把數(shù)據(jù)引出來(lái)。DRAM27有例如2M字節(jié)的容量。
選擇器7通過(guò)有128位的寫(xiě)緩沖器5、還有,DRAM27、超高速緩存器28、IQ8分別連接在總線ID<0127>上。在該總線ID<0127>、和微處理器101與其外部(例如外部存儲(chǔ)器4、外部總線主控器41)連接的數(shù)據(jù)總線D<015>之間,設(shè)有BIU3。微處理器101還通過(guò)地址總線58、控制總線56、57,分別與外部存儲(chǔ)器4、外部總線主控器41連接。
BIU3控制對(duì)微處理器內(nèi)部安裝的存儲(chǔ)器及連接到其外部上的存儲(chǔ)器的訪問(wèn)。為了對(duì)16位的總線D<015>和128位的總線ID<0127>進(jìn)行匹配,BIU3有128位的緩沖器301。BIU3還有被設(shè)置在緩沖器301與總線ID<0127>之間的ID總線驅(qū)動(dòng)器302,由控制塊303控制302的工作。控制塊303具有向DRAM27、超高速緩存器28提供寫(xiě)入/讀出指令(信號(hào)R/W)、登記指令的功能。
PLL11生成微處理器的工作時(shí)鐘脈沖。例如,生成頻率為內(nèi)部CPU等工作時(shí)4倍頻了的時(shí)鐘,并生成與外部訪問(wèn)用的輸入時(shí)鐘頻率相同的時(shí)鐘。
圖3(a)~(d)是指令處理模式圖。通過(guò)流水線控制來(lái)處理指令。流水線控制由例如指令取出(IF)、指令譯碼(D)、執(zhí)行(E)、存儲(chǔ)器訪問(wèn)(MEM)、向共用寄存器的寫(xiě)回(WB)這樣5個(gè)階段構(gòu)成。
CPU1有RISC型結(jié)構(gòu),只以load/store(裝入/存儲(chǔ))系統(tǒng)的指令產(chǎn)生對(duì)存儲(chǔ)器的操作數(shù)存取。圖3(a)示出了用load指令操作數(shù)命中超高速緩沖器,用1個(gè)周期就能輸送已存在于存儲(chǔ)器中數(shù)據(jù)的情況。該圖(b)示出了用多個(gè)時(shí)鐘存取已存在于存儲(chǔ)器中數(shù)據(jù)的情況。該圖(c)示出了不產(chǎn)生訪問(wèn)存儲(chǔ)器的指令的情況。該圖(d)示出了執(zhí)行時(shí)需要多個(gè)時(shí)鐘的指令、例如乘法指令、除法指令的情況。
(1)指令/數(shù)據(jù)的輸送當(dāng)取出的指令命中超高速緩存器28時(shí),CPU1便用時(shí)鐘的1個(gè)周期從超高速緩存器28通過(guò)總線ID<0127>把該指令送給IQ8。
當(dāng)DRAM27中有取出指令時(shí),CPU1使用1次訪問(wèn)(例如需要時(shí)鐘的5個(gè)周期),從DRAM通過(guò)總線ID<0127>把該指令輸送給IQ8。
當(dāng)外部存儲(chǔ)器4中有取出指令時(shí),CPU1以脈沖串輸送方式從外部存儲(chǔ)器4取出,依次存入BIU3的緩沖器301中。如果緩沖器301已存滿(如果存儲(chǔ)了128位的指令),便將128位的指令輸送給IQ8。當(dāng)該指令被超高速緩存器時(shí),還同時(shí)將其輸送給超高速緩存器28。
圖4是表示IQ8例如有2個(gè)入口×128位的容量時(shí)指令輸送情況的框圖。表示指令從DRAM27(或超高速緩存器28)及從有128位容量的緩沖器301輸送的情況。
圖5是表示CPU1立刻需要指令時(shí)(IQ8呈空狀態(tài)時(shí)),從外部存儲(chǔ)器4輸送指令的情況的框圖。BIU3所具有的控制塊303從CPU1輸入表示取出指令請(qǐng)求的信號(hào)IFetch,該信號(hào)若被認(rèn)定,便對(duì)外部存儲(chǔ)器4認(rèn)定總線起動(dòng)信號(hào)BS(總線起動(dòng)信號(hào)BS由例如圖1所示的控制總線56傳遞)。此后,指令通過(guò)總線D<015>被輸送給BIU3所具有的緩沖器301。如果從IQ8傳遞給控制塊303的、表示IQ8呈空狀態(tài)的信號(hào)IQempty被認(rèn)定,則驅(qū)動(dòng)信號(hào)及驅(qū)動(dòng)大小信號(hào)便被從控制塊303提供給ID總線驅(qū)動(dòng)器302。
驅(qū)動(dòng)尺寸信號(hào)由16位構(gòu)成,存儲(chǔ)在緩沖器301中的128位的數(shù)據(jù)被作為16個(gè)8位的數(shù)據(jù)管理,以8位為單位指定必要的信息。然后根據(jù)驅(qū)動(dòng)信號(hào),該指定的信息被輸送給總線ID<0127>。例如驅(qū)動(dòng)尺寸信號(hào)的2位被活化,8×2=16位通過(guò)總線ID<0127>被輸送給IQ8。如果CPUI再請(qǐng)求取出指令,則再將16位輸送給IQ8。其后,如果CPUI不立刻需要指令(信號(hào)IQempty被取消),則從外部存儲(chǔ)器4以脈沖串方式輸送來(lái)的數(shù)據(jù)充滿緩沖器301,然后輸送給IQ8。在控制塊303中還通過(guò)控制總線56從外部存儲(chǔ)器4接受數(shù)據(jù)輸送結(jié)束信號(hào)DC。
當(dāng)然,也可以不檢查IQ8是否為空狀態(tài),經(jīng)常首先只輸送開(kāi)始的指令,如果緩沖器301已滿,便將128位輸送并寫(xiě)入超高速緩存器28。
回到圖1,CPU1讀取數(shù)據(jù)時(shí),如果數(shù)據(jù)存在于DRAM27或超高速緩存器28中,則包含必要數(shù)據(jù)的128位通過(guò)總線ID<0127>被輸送給選擇器7。由選擇器7將必要的32位數(shù)據(jù)送給CPU1。如果必要的數(shù)據(jù)在外部存儲(chǔ)器4中時(shí),32位的數(shù)據(jù)便被存入緩沖器301中,它被通過(guò)總線ID<0127>輸送給CPU1。
數(shù)據(jù)的尺寸有8位/16位/32位共3種,從外部存儲(chǔ)器讀出時(shí),若為32位,則必須進(jìn)行2次外部訪問(wèn),若為8位/16位時(shí),通過(guò)1次訪問(wèn)就能從緩沖器301通過(guò)總線ID<0127>輸送給CPU1。
當(dāng)CPU1將32位的數(shù)據(jù)寫(xiě)入存儲(chǔ)器(DRAM27或超高速緩存器28)中時(shí),選擇器7將該數(shù)據(jù)輸出到對(duì)應(yīng)的總線ID<0127>的對(duì)應(yīng)位置上。這時(shí),在把應(yīng)該寫(xiě)入的數(shù)據(jù)存儲(chǔ)到寫(xiě)入緩沖器5內(nèi)之后,也能夠輸送。就是說(shuō),當(dāng)總線ID<0127>呈空狀態(tài)時(shí),便從寫(xiě)入緩沖器5輸送數(shù)據(jù)。若輸出給外部存儲(chǔ)器4時(shí),便被暫時(shí)鎖存在緩沖器301中,16位16位地輸出給總線ID<0127>。
(2)從外部總線主控器訪問(wèn)微處理器內(nèi)部的DRAM。
微處理器101內(nèi)部的DRAM27不僅可以從CPU1、也可以從外部總線主控器,與微處理器101的指令無(wú)關(guān)地直接訪問(wèn)??偩€主控器有權(quán)通過(guò)總線訪問(wèn)存儲(chǔ)器,例如可以舉出DMAC(直接存儲(chǔ)器存取控制器)、處理器、存儲(chǔ)控制器等。
如圖1所示,外部總線主控器41通過(guò)數(shù)據(jù)總線D<015>、地址總線58及控制總線57,與微處理器101連接。外部總線主控器41向微處理器101輸出訪問(wèn)請(qǐng)求信號(hào),一旦被接受,便可直接訪問(wèn)DRAM27。以下說(shuō)明CPU1及外部總線主控器41訪問(wèn)DRAM27和外部存儲(chǔ)器4時(shí)各訪問(wèn)的通信規(guī)定。
(2-a)CPU1訪問(wèn)DRAM27時(shí)以下是以往所執(zhí)行的通信規(guī)定,首先,①輸出來(lái)自CPU1的訪問(wèn)請(qǐng)求,②BIU3對(duì)此發(fā)出允許,③在BIU3的控制下,利用ID<0127>總線將DRAM27中的數(shù)據(jù)輸送給CPU1。
(2-b)CPU1從外部存儲(chǔ)器4讀出數(shù)據(jù)時(shí)圖6是表示CPU1從外部存儲(chǔ)器4讀出數(shù)據(jù)時(shí)的通信規(guī)定的時(shí)間圖。時(shí)鐘表示輸入時(shí)鐘。首先,①?gòu)腃PU1向BIU3輸出訪問(wèn)請(qǐng)求,②從BIU3向CPU1輸出訪問(wèn)允許。然后,③認(rèn)定通過(guò)控制總線56從BIU3送給外部存儲(chǔ)器4的總線起動(dòng)信號(hào)BS,讀寫(xiě)信號(hào)R/W請(qǐng)求外部存儲(chǔ)器4進(jìn)行讀出工作,確定字節(jié)控制信號(hào)BC[將傳遞給總線D<015>、ID<0127>的16位作為2個(gè)8位(=1字節(jié))的信號(hào)管理,指定其中的一者或兩者的信號(hào)]的值。另外,通過(guò)地址總線58從微處理器101輸出地址A1、A2、A3。字節(jié)控制信號(hào)BC對(duì)應(yīng)于地址A1、A2、A3變化,即可。
接受了來(lái)自微處理器101的訪問(wèn)請(qǐng)求后,④外部存儲(chǔ)器4將與地址A1、A2、A3對(duì)應(yīng)的讀出數(shù)據(jù)D1、D2、D3傳遞給總線D<015>,每次認(rèn)定數(shù)據(jù)輸送結(jié)束信號(hào)DC。然后,⑤數(shù)據(jù)D1、D2、D3通過(guò)總線ID<0127>被輸送給CPU1。
(2-c)CPU1將數(shù)據(jù)寫(xiě)入外部存儲(chǔ)器4時(shí)圖7是表示CPU1將數(shù)據(jù)寫(xiě)入外部存儲(chǔ)器4時(shí)的通信規(guī)定的時(shí)間圖。程序①、②與(2-b)相同。然后,③應(yīng)寫(xiě)入的數(shù)據(jù)(寫(xiě)入數(shù)據(jù))從CPU1通過(guò)總線ID<0127>被輸送給BIU3。再后,④認(rèn)定總線起動(dòng)信號(hào)BS,讀寫(xiě)信號(hào)R/W請(qǐng)求對(duì)外部存儲(chǔ)器4進(jìn)行寫(xiě)入工作,確定字節(jié)控制信號(hào)BC的值。地址A1、A2、A3通過(guò)地址總線58,而與這些地址對(duì)應(yīng)的寫(xiě)入數(shù)據(jù)D1、D2、D3通過(guò)總線D<015>,被分別從微處理器101輸出。
接受來(lái)自微處理器101的訪問(wèn)請(qǐng)求后,⑤數(shù)據(jù)D1、D2、D3被寫(xiě)入外部存儲(chǔ)器4,每次認(rèn)定數(shù)據(jù)輸送結(jié)束信號(hào)DC。
(2-d)將數(shù)據(jù)從外部總線主控器41寫(xiě)入DRAM27時(shí)圖8是表示將數(shù)據(jù)從外部總線主控器41寫(xiě)入DRAM27時(shí)的通信規(guī)定的時(shí)間圖。首先,①認(rèn)定表示來(lái)自外部總線主控器41的請(qǐng)求接受停機(jī)請(qǐng)求(Halt Request)的信號(hào)HREQ。與此對(duì)應(yīng),從微處理器101認(rèn)定允許接受的HREQ確認(rèn)(Acknowledge)信號(hào)HACK。然后,從外部總線主控器41認(rèn)定芯片選擇信號(hào)CS。這些信號(hào)通過(guò)控制總線57在微處理器101與外部總線主控器41之間傳遞。
其次,②從外部總線主控器41傳遞給微處理器101的讀寫(xiě)信號(hào)R/W請(qǐng)求對(duì)DRAM27進(jìn)行寫(xiě)入工作,地址A1、A2、A3及與它們對(duì)應(yīng)的寫(xiě)入數(shù)據(jù)D1、D2、D3被傳遞給微處理器101。然后,③從微處理器101認(rèn)定數(shù)據(jù)輸送結(jié)束信號(hào)DC。
圖9是表示依靠外部總線主控器41的訪問(wèn)結(jié)束時(shí)的時(shí)間圖。④取消芯片選擇信號(hào)CS、停機(jī)請(qǐng)求信號(hào)HREQ,⑤微處理器101的接受也結(jié)束(取消HREQ Ack信號(hào)HACK)。
圖10是緩沖器301的結(jié)構(gòu)框圖。緩沖器301有128位的容量,另一方面,數(shù)據(jù)總線D<015>有16位的位長(zhǎng)度。因此,緩沖器301有容量為16位的8個(gè)鎖存器301a~301h、以及分別與它們對(duì)應(yīng)的選擇器301p~301w,根據(jù)外部總線主控器41提供的地址值,將載于總線D<015>上的數(shù)據(jù)存入鎖存器301a~301h。
例如,對(duì)一個(gè)地址指定的數(shù)據(jù)的長(zhǎng)度為8位,一個(gè)鎖存器中能存儲(chǔ)2個(gè)地址的數(shù)據(jù)。即與一對(duì)相鄰的地址對(duì)應(yīng)的數(shù)據(jù)被存入同一個(gè)鎖存器中。為了實(shí)現(xiàn)這樣的工作,緩沖器301還有選擇控制部301x,它根據(jù)地址的低位的4位中除去最低的1位后的3位的值,將各選擇控制信號(hào)B0~B7分別提供給選擇器301p~301w。選擇控制信號(hào)B0~B7擇一地被活化,將載于總線D<015>上的8位數(shù)據(jù)存入鎖存器301a~301h中的某一個(gè)。
(2-e)外部總線主控器41從CRAM27讀出數(shù)據(jù)時(shí)圖11是表示外部總線主控器41從DRAM27讀出數(shù)據(jù)時(shí)的通信規(guī)定的時(shí)間圖。程序①與(2-d)相同。然后,②從外部總線主控器41傳遞給微處理器101的讀寫(xiě)信號(hào)R/W請(qǐng)求對(duì)CRAM27進(jìn)行讀出工作,地址A1、A2、A3被傳遞給微處理器101。然后,③讀出與這些地址對(duì)應(yīng)的數(shù)據(jù)D1、D2、D3,從微處理器101輸出這些數(shù)據(jù),認(rèn)定數(shù)據(jù)輸送結(jié)束信號(hào)DC。程序④、⑤也與(2-d)相同。
外部總線主控器41和緩沖器301通過(guò)總線D<015>進(jìn)行讀/寫(xiě)時(shí),BIU3接受對(duì)CPU1的超高速緩存器28、DRAM27的訪問(wèn)。外部總線主控器41從DRAM27讀出時(shí),DRAM27中的數(shù)據(jù)或超高速緩存器命中時(shí)超高速緩存器28的數(shù)據(jù)被輸送給緩沖器301。緩沖器301為128位,總線D<015>為16位,當(dāng)外部總線主控器41的請(qǐng)求是讀出緩沖器301中的幾個(gè)數(shù)據(jù)時(shí),不使用總線ID<0127>。因此,例如CPU1從DRAM27取出了指令時(shí),BIU3接受該請(qǐng)求,從DRAM27(超高速緩存器命中時(shí),從超高速緩存器28)通過(guò)總線ID<0127>輸送指令。
外部總線主控器41對(duì)DRAM27進(jìn)行寫(xiě)入時(shí)也同樣,將數(shù)據(jù)存入緩沖器301時(shí)使用總線ID<0127>,能進(jìn)行CPU1、DRAM27、超高速緩存器28之間的數(shù)據(jù)/指令的輸送。圖23是表示來(lái)自外部主控器41的讀出及CPU1的讀出訪問(wèn)請(qǐng)求的形態(tài)的時(shí)間圖。由外部總線主控器41指定的地址A1、A2、A3不越過(guò)地址邊界〔是各地址存在于規(guī)定的范圍內(nèi)的情況,將在(2-f)中詳述〕,一次讀出與這些地址對(duì)應(yīng)的數(shù)據(jù)D1、D2、D3(DRAM(超高速緩存器)訪問(wèn)請(qǐng)求的左端的認(rèn)定),載于總線ID<0127>上,然后,存入緩沖器301。
此后,由于未使用總線ID<0127>,與來(lái)自CPU的訪問(wèn)請(qǐng)求不同,認(rèn)定DRAM訪問(wèn)請(qǐng)求(位于正中的認(rèn)定),讀出與該請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)D_CPU,載于總線ID<0127>。另一方面,從緩沖器301向外部總線主控器41輸送數(shù)據(jù)D1、D2、D3。
然后,與地址A1、A2、A3不同,認(rèn)定有關(guān)越過(guò)了邊界的地址A5的DRAM(超高速緩存器)訪問(wèn)請(qǐng)求(位于右端的認(rèn)定),讀出與該地址對(duì)應(yīng)的數(shù)據(jù)D5,載于總線ID<0127>上,存入緩沖器301。
由后文所述的圖22所示的外部訪問(wèn)控制電路303g接受地址比較結(jié)果、訪問(wèn)種類檢測(cè)結(jié)果及更新請(qǐng)求,并生成外部訪問(wèn)請(qǐng)求及內(nèi)部總線未使用信號(hào)。該內(nèi)部總線未使用信號(hào)表示外部總線訪問(wèn)時(shí)不使用內(nèi)部總線的狀態(tài)、或外部總線主控器41的訪問(wèn)地址不越過(guò)地址邊界的訪問(wèn)的處理中,未使用內(nèi)部總線。在認(rèn)定該信號(hào)期間,接受CPU1的訪問(wèn)請(qǐng)求,訪問(wèn)DRAM27、超高速緩存器28。
(2-f)外部總線主控器41提供的地址越過(guò)地址邊界時(shí)從外部總線主控器寫(xiě)入DRAM27用圖10說(shuō)明過(guò),與低位的4位連續(xù)的地址對(duì)應(yīng)的16個(gè)8位長(zhǎng)的數(shù)據(jù)被存入緩沖器301??墒牵缂俣ǖ刂烽L(zhǎng)度為24位時(shí),如果高位的20位相同時(shí),雖然可將這些16個(gè)×8位=128位的數(shù)據(jù)一并輸送給DRAM27,但地址的高位20位不同時(shí),如果將它們一并輸送,數(shù)據(jù)就會(huì)被提供給錯(cuò)誤的地址,必須避免。就是說(shuō),外部總線主控器41的地址值如果越過(guò)16位的邊界(換算成數(shù)據(jù)的話,為16×8=128位的邊界在本說(shuō)明書(shū)中簡(jiǎn)稱"地址邊界")時(shí),必須將至此存入緩沖器301中的數(shù)據(jù)暫時(shí)放出。
圖12是用于進(jìn)行這種工作用的裝置的框圖,微處理器101還備有地址緩沖器51和地址比較器52。地址緩沖器51從地址總線58接受24位長(zhǎng)的地址的高位20位,經(jīng)常輸出當(dāng)前地址的前一個(gè)地址的高位20位。地址比較器52將地址緩沖器51的輸出同當(dāng)前地址的高位20位進(jìn)行比較。
兩者如果一致,則外部總線主控器41的地址值不越過(guò)16位的地址邊界,所以繼續(xù)對(duì)緩沖器301進(jìn)行數(shù)據(jù)存儲(chǔ)??墒?,當(dāng)不一致時(shí),控制緩沖器301,以便通過(guò)總線ID<0127>將當(dāng)前存儲(chǔ)的數(shù)據(jù)輸送給DRAM27。這時(shí),控制塊303將讀寫(xiě)信號(hào)R/W提供給DRAM27,以便DRAM27進(jìn)行寫(xiě)入工作。
圖l3是表示上述工作的時(shí)間圖。設(shè)想地址A1~A4的高位20位是一樣的,地址A5的高位20位與它們不同的情況。緩沖器301存儲(chǔ)了與地址A1~A4對(duì)應(yīng)的數(shù)據(jù)D1~D4,但在提供給地址A5的時(shí)刻(越過(guò)地址邊界的時(shí)刻)這些數(shù)據(jù)D1~D4被一并提供給總線ID<0127>。在認(rèn)定芯片選擇信號(hào)CS期間,認(rèn)定信號(hào)HREQ、HACK。
此后,認(rèn)定對(duì)DRAM27的訪問(wèn)請(qǐng)求,這些數(shù)據(jù)被寫(xiě)入DRAM27,取消從控制塊303提供給外部總線主控器41的數(shù)據(jù)輸送結(jié)束信號(hào)DC(時(shí)刻t4~t5)。
然后,與地址A5對(duì)應(yīng)的數(shù)據(jù)D5被存入緩沖器301,在來(lái)自外部總線主控器41的訪問(wèn)請(qǐng)求結(jié)束的時(shí)刻(取消芯片選擇信號(hào)CS),緩沖器301中存儲(chǔ)的數(shù)據(jù)A5通過(guò)總線ID<0127>被輸送給DRAM27(認(rèn)定數(shù)據(jù)輸送結(jié)束信號(hào)DC,此后,取消對(duì)DRAM27的訪問(wèn)請(qǐng)求時(shí)刻t5~t6)。
(2-g)外部總線主控器41提供的地址越過(guò)地址邊界時(shí),外部總線主控器41從DRAM27的讀出圖14是表示外部總線主控器41從DRAM27讀出數(shù)據(jù)時(shí),該地址的高位20位發(fā)生了變化時(shí)(越過(guò)地址邊界時(shí))的工作時(shí)間圖。發(fā)出外部總線主控器41的讀出請(qǐng)求(認(rèn)定芯片選擇信號(hào)CS)后,控制塊303將讀寫(xiě)信號(hào)R/W提供給DRAM27,以便DRAM27進(jìn)行讀出工作。
認(rèn)定對(duì)DRAM27的訪問(wèn)請(qǐng)求,任何一個(gè)分別與24位地址A1、A2、A3對(duì)應(yīng)的、高位20位相等的數(shù)據(jù)D1、D2、D3被提供給總線ID<0127>(時(shí)刻t0~時(shí)刻t1)。但由于地址A5的高位20位與地址A1、A2、A3不同,所以在時(shí)刻t1還不載于總線ID<0127>。仍在認(rèn)定數(shù)據(jù)輸送結(jié)束信號(hào)DC后的狀態(tài)下,數(shù)據(jù)D1、D2、D3通過(guò)緩沖器301被輸送到外部。暫時(shí)取消對(duì)DRAM27的訪問(wèn)請(qǐng)求(時(shí)刻t1)。
地址A5被輸送給外部總線主控器41時(shí),由于越過(guò)了地址邊界,所以暫時(shí)取消數(shù)據(jù)輸送結(jié)束信號(hào)DC,再次認(rèn)定對(duì)DRAM27的訪問(wèn)請(qǐng)求(時(shí)刻t2)。然后,與地址A5對(duì)應(yīng)的數(shù)據(jù)D5被從DRAM27提供給總線ID<0127>,它被存入緩沖器301。另一方面,如果數(shù)據(jù)D5被送到外部,則訪問(wèn)請(qǐng)求結(jié)束(取消芯片選擇信號(hào)CS。時(shí)刻t3)大體上說(shuō),最大128位的數(shù)據(jù)被從DRAM27讀出后存入緩沖器301(例如上述數(shù)據(jù)D1、D2、D3)。根據(jù)從外部總線主控器41請(qǐng)求的地址值,輸出對(duì)應(yīng)的16位(一個(gè)鎖存器存儲(chǔ)的2個(gè)地址)的數(shù)據(jù)。當(dāng)從外部總線主控器41請(qǐng)求的地址越過(guò)了地址邊界時(shí),新的數(shù)據(jù)(例如,上述數(shù)據(jù)D5)被從DRAM27輸送給緩沖器301,16位16位地輸出給外部總線主控器。
如上所述,如果采用與本實(shí)施例有關(guān)的微處理器,則不僅本身的CPU1而且還能由外部總線主控器41訪問(wèn)內(nèi)部安裝的DRAM27,另外,還能由CPU1訪問(wèn)外部存儲(chǔ)器4。而且,由于能共用讀寫(xiě)信號(hào)R/W和字節(jié)控制信號(hào)BC,所以不需要增多必要的管腳數(shù)。
另外,即使內(nèi)部的數(shù)據(jù)總線ID<0127>與外部的數(shù)據(jù)總線D<015>的位長(zhǎng)度不同,也能通過(guò)控制緩沖器301將數(shù)據(jù)輸送到內(nèi)部。
另外,即使地址越過(guò)了規(guī)定的地址邊界,也能避免進(jìn)行錯(cuò)誤的數(shù)據(jù)輸送。
實(shí)施例2在實(shí)施例2中說(shuō)明各種方式的變更方法。圖15是表示微處理器101的地址空間的模式圖。邏輯地址用16進(jìn)制的32位的數(shù)(32/log216=8位)表示。在作為用戶空間的邏輯空間地址00000000~80000000(SID=0)中,分配出地址00000000~001FFFFF作為微處理器101內(nèi)部安裝的DRAM27的物理空間。另外,分配出地址00200000~00FFFFFF作為外部存儲(chǔ)器4用的空間。因此,對(duì)于這2個(gè)存儲(chǔ)器的地址空間,能用在(2)中說(shuō)明過(guò)的24位的地址(邏輯地址的低位6位)來(lái)指定。
另外,還分別分配地址FF00000~FF7FFFFF作為用戶用的I/O空間,分配地址FF800000~FFBFFFFF作為ICE(In Circuit Emulator)用的空間,而且,在地址FFC00000~FFFFFFFF中分配內(nèi)部安裝的控制寄存器用的物理空間。這些分配都在I/O空間(SID=1)中進(jìn)行。
圖16是表示內(nèi)部安裝的控制寄存器的地址空間的一部分的模式圖。在地址FFFFFFF4、FFFFFFF8、FFFFFFFC中,分別存儲(chǔ)著超高速緩存器清除控制、DRAM更新控制、存儲(chǔ)器控制用的數(shù)據(jù)MSPR、MDRR、MCCR(各1字節(jié))。
圖17是表示數(shù)據(jù)MSPR、MDRR、MCCR的詳細(xì)結(jié)構(gòu)的模式圖。在數(shù)據(jù)MSPR的第7位上存儲(chǔ)著表示是否進(jìn)行清除控制的1位的值,在數(shù)據(jù)MDRR的第7位上存儲(chǔ)著表示是否進(jìn)行更新控制的1位的值,在數(shù)據(jù)MCCR的第6位及第7位上存儲(chǔ)著表示超高速緩存器方式的種類的2位的值。
在以下的實(shí)施例中,說(shuō)明根據(jù)這些數(shù)據(jù)MSPR、MDRR、MCCR進(jìn)行的控制。
(3)超高速緩存器方式的變更通過(guò)根據(jù)上述數(shù)據(jù)MCCR進(jìn)行控制,微處理器101根據(jù)超高速緩存器數(shù)據(jù)的種類,能切換超高速緩存器方式。例如,作為超高速緩存器方式可以考慮以下方式。
i)超高速緩存器切斷方式;是不進(jìn)行超高速緩存器的方式。
ii)全部存儲(chǔ)器共用超高速緩存器方式;是超高速緩存CPU1訪問(wèn)外部存儲(chǔ)器4、DRAM27的指令/數(shù)據(jù)及外部總線主控器41對(duì)DRAM27進(jìn)行讀/寫(xiě)的數(shù)據(jù)的方式。
iii)共用超高速緩存器方式;是超高速緩存,不管是外部存儲(chǔ)器4、還是DRAM27的,CPU1訪問(wèn)的指令/數(shù)據(jù)的方式。
iV)指令超高速緩存器方式;是超高速緩存,不管是外部存儲(chǔ)器4、還是DRAM27的,CPU1訪問(wèn)的指令的方式。
V)數(shù)據(jù)超高速緩存器方式;是超高速緩存,不管是外部存儲(chǔ)器4、還是DRAM27的CPU1訪問(wèn)的數(shù)據(jù)的方式。
Vi)內(nèi)部共用超高速緩存器方式;是超高速緩存在DRAM27中CPU1訪問(wèn)的指令/數(shù)據(jù)的方式。
Vii)內(nèi)部指令超高速緩存器方式;是超高速緩存在DRAM27中CPU1訪問(wèn)的指令的方式。
Viii)內(nèi)部數(shù)據(jù)超高速緩存器方式;是超高速緩存在DRAM27中CPU1訪問(wèn)的數(shù)據(jù)的方式。
iX)外部共用超高速緩存器方式;是超高速緩存在外部存儲(chǔ)器4中CPU1訪問(wèn)的指令/數(shù)據(jù)的方式。
X)外部指令超高速緩存器方式;是超高速緩存在外部存儲(chǔ)器4中CPU1訪問(wèn)的指令的方式。
Xi)外部數(shù)據(jù)超高速緩存器方式;是超高速緩存在外部存儲(chǔ)器4中CPU1訪問(wèn)的數(shù)據(jù)的方式。
Xii)外部存儲(chǔ)器超高速緩存器方式;是超高速緩存在外部存儲(chǔ)器4中CPU1訪問(wèn)的指令/數(shù)據(jù)及外部總線主控器41寫(xiě)入DRAM27中的數(shù)據(jù)的方式。
Xiii)內(nèi)部存儲(chǔ)器超高速緩存器方式;是超高速緩存在DRAM27中CPU1訪問(wèn)的指令/數(shù)據(jù)及外部總線主控器41從DRAM27中讀出的數(shù)據(jù)的方式。
XiV)外部總線主控器超高速緩存器方式;是超高速緩存器外部總線主控器41對(duì)DRAN27進(jìn)行讀/寫(xiě)的數(shù)據(jù)的方式。
通過(guò)參照數(shù)據(jù)MCCR的第6及第7位中存儲(chǔ)的2位的值,可以從這些超高速緩存器方式中選擇i)非超高速緩存器切斷方式,Vi)內(nèi)部共用超高速緩存器方式,X)外部指令超高速緩存器方式,及iV)指令超高速緩存器方式這4種。
圖18是表示控制塊303的結(jié)構(gòu)的一部分的框圖。由于DRAM27和外部存儲(chǔ)器4劃分為用圖15表示的地址空間,所以能利用地址譯碼器303b判斷兩者中的哪一個(gè)成為訪問(wèn)對(duì)象。該判斷結(jié)果被提供給訪問(wèn)種類檢測(cè)電路303d。另外,訪問(wèn)主體判斷部303c判斷訪問(wèn)的主體是CPU1還是外部總線主控器41,將其判斷結(jié)果提供給訪問(wèn)種類檢測(cè)電路303d。
訪問(wèn)種類檢測(cè)電路303d根據(jù)地址譯碼器303b的判斷結(jié)果及訪問(wèn)主體判斷部303c的判斷結(jié)果,將載于總線ID<0127>上的信號(hào)中哪一個(gè)是請(qǐng)求指令或哪一個(gè)是數(shù)據(jù)等的信息C3提供給超高速緩存器訪問(wèn)控制電路303e。
另一方面,超高速緩存器方式譯碼電路303a根據(jù)數(shù)據(jù)MCCR的低位2位的值,將有關(guān)請(qǐng)求什么樣的超高速緩存器方式的信息C1提供給超高速緩存器訪問(wèn)控制電路303e。超高速緩存器訪問(wèn)控制電路303e根據(jù)信息C1、C3,把控制對(duì)DRAM27的數(shù)據(jù)進(jìn)行超高速緩存器〔Vi)內(nèi)部共用超高速緩存器方式〕,或?qū)ν獠看鎯?chǔ)器4的指令進(jìn)行超高速緩存器[X)外部指令超高速緩存器方式〕,或?qū)Σ还苁峭獠看鎯?chǔ)器4還是DRAM27的CPU1訪問(wèn)的指令進(jìn)行超高速緩存 [iV)指令超高速緩存器方式〕,或完全不進(jìn)行超高速緩存〔i)超高速緩存器切斷方式〕的登記信號(hào)C2提供給超高速緩存器28。
圖19至圖21分別是模式地表示采用Vi)內(nèi)部共用超高速緩存器方式、X)外部指令超高速緩存器方式、iV)指令超高速緩存器方式時(shí)的微處理器101的結(jié)構(gòu)框圖。超高速緩存器28在圖19中模式地采取位于DRAM27與總線ID<0127>之間的形態(tài),在圖20中模式地采取位于BIU3與總線ID<0127>之間的形態(tài),在圖21中模式地采取位于CPU1與DRAM27及BIU3之間的形態(tài)。
雖然數(shù)據(jù)總線D<015>、控制總線56、57以及地址總線58是一并描述的,但是上述那樣的各個(gè)信號(hào)HREQ、HACK、地址、數(shù)據(jù)(還包括指令)、其它信號(hào)BC、R/W、以及CS等控制信號(hào)通過(guò)這些總線進(jìn)行傳遞。
(3-a)關(guān)于Vi)內(nèi)部共用超高速緩存器方式是超高速緩存CPU1對(duì)DRAM27訪問(wèn)的指令/數(shù)據(jù)的方式,在將程序存入DRAM27中時(shí)使用(圖19)。
當(dāng)取出的指令位于DRAM27中時(shí),CPU1在BIU3的控制下首先檢查超高速緩存器是否命中。命中時(shí),該指令從超高速緩存器28輸出給總線ID<0127>,并輸送給IQ8(在圖19中,是作為包含在CPU1中表示的)。
超高速緩存器失誤時(shí),則從DRAM27輸送給超高速緩存器28及CPU1。例如超高速緩存器28具有256(=28)個(gè)入口×128位=4K字節(jié)的容量。24位的地址IAD<731>內(nèi)的8位IAD<2027>成為入口地址。地址IAD<731>內(nèi)的13位IAD<719>作為特征登記下來(lái)。從DRAM27讀出的128位的數(shù)據(jù)被寫(xiě)入超高速緩存器28中。這時(shí),IAD<2027>表示的入口的有效位被置位。
CPU1讀DRAM27中的數(shù)據(jù)時(shí),與取出指令時(shí)一樣,檢查超高速緩存器的命中,命中時(shí)從超高速緩存器28讀出,失誤時(shí)從DRAM27讀出。
CPU1將數(shù)據(jù)寫(xiě)入DRAM27中時(shí),檢查超高速緩存器是否命中。命中時(shí),將寫(xiě)入數(shù)據(jù)寫(xiě)入超高速緩存器28對(duì)應(yīng)的入口128位的一部分中,該入口的“臟”位被置位?!芭K”位被置位的數(shù)據(jù)在登記下一個(gè)超高速緩存器數(shù)據(jù)時(shí)被寫(xiě)返到該入口中(寫(xiě)回)。失誤時(shí),寫(xiě)入數(shù)據(jù)被寫(xiě)入DRAM27。
也可以用圖17所示的信號(hào)MSPR的第7位的清除(purge)指令寫(xiě)返到DRAM27中,以代替寫(xiě)回。
(3-b)X)外部指令超高速緩存器方式位于外部存儲(chǔ)器4內(nèi)的指令被超高速緩存到超高速緩存器28中。
例如設(shè)置指令ROM作為外部存儲(chǔ)器4、將數(shù)據(jù)置于DRAM27中時(shí)采用(圖20)。
CPU1對(duì)外部存儲(chǔ)器4取出指令時(shí),檢查超高速緩存器的命中,命中時(shí)從超高速緩存器28取出,失誤時(shí)從外部存儲(chǔ)器4取出。為了將從外部存儲(chǔ)器4取出的指令登記在超高速緩存器28中,通過(guò)脈沖串輸送,傳遞給微處理器101,將128位保存在BIU3中,再輸送給超高速緩存器28。
(3-c)iV)指令超高速緩存器方式是超高速緩存CPU1取出的指令的方式,當(dāng)將指令置于DRAM27及外部存儲(chǔ)器4中時(shí)采用(圖21)。CPU1請(qǐng)求取出的指令檢查超高速緩存器是否命中,命中時(shí)從超高速緩存器28取出,失誤時(shí)從DRAM27或從外部存儲(chǔ)器4取出。從外部存儲(chǔ)器4取出指令與(3-b)相同,從DRAM27取出指令,以1次讀出,128位被登記在超高速緩存器28中。
在各超高速緩存器方式中,也可以用地址指定非超高速緩存器的區(qū)域,以便超高速緩存器28不超高速緩存器DRAM27及外部存儲(chǔ)器4中不應(yīng)該進(jìn)行超高速緩存器的區(qū)域(例如,即使進(jìn)行超高速緩存器,寫(xiě)回反而變得頻繁,存儲(chǔ)處理速度惡化的數(shù)據(jù)的區(qū)域)。當(dāng)然,這樣的區(qū)域被訪問(wèn)后,通過(guò)認(rèn)定通常微處理器中設(shè)定的可非超高速緩存器管腳,也能避免超高速緩存器。
如上所述,如果采用與本實(shí)施例有關(guān)的微處理器,將DRAM27及超高速緩存器28設(shè)在內(nèi)部,可以選擇其超高速緩存的形態(tài)。
實(shí)施例3(4)更新在微處理器101中還可以附加更新控制用的更新計(jì)時(shí)器26。圖22表示控制塊303的結(jié)構(gòu)與將更新請(qǐng)求提供給它的更新計(jì)時(shí)器26的關(guān)系。在圖22中,控制塊303與圖18所示的結(jié)構(gòu)不同,它還有DRAM訪問(wèn)控制電路303f、外部訪問(wèn)控制電路303g,更新計(jì)時(shí)器26直接將更新請(qǐng)求提供給DRAM訪問(wèn)控制電路303f。
圖24是微處理器102的結(jié)構(gòu)例框圖,該微處理器102備有包含更新計(jì)時(shí)器26和控制塊303的BIU3。更新計(jì)時(shí)器26每隔規(guī)定的期間,便請(qǐng)求DRAM27進(jìn)行更新,更新計(jì)時(shí)器26獨(dú)立于CPU1和外部總線主控器41,成為對(duì)DRAM7的總線主控器。即CPU1起第1內(nèi)部總線主控器的作用,更新計(jì)時(shí)器26起第2總線主控器的作用。這樣的更新請(qǐng)求是根據(jù)數(shù)據(jù)MDRR中的第7位的值進(jìn)行的。
圖24表示DRAM27在被更新的狀態(tài)下的訪問(wèn)形態(tài)。即DRAM27正在更新中,其它總線主控器例如CPU1和外部總線主控器41不能訪問(wèn)DRAM27。可是由于總線ID<0127>并未被占用,所以可從CPU1訪問(wèn)超高速緩存器28和訪問(wèn)外部存儲(chǔ)器4。另外,外部總線主控器41訪問(wèn)DRAM27的處理在超高速緩存器28命中后也能進(jìn)行。
回過(guò)來(lái)說(shuō)明圖22,當(dāng)來(lái)自更新計(jì)時(shí)器26的更新請(qǐng)求被取消時(shí),DRAM訪問(wèn)控制電路303f根據(jù)信息C3,將DRAM訪問(wèn)請(qǐng)求提供給DRAM27??墒钦J(rèn)定更新請(qǐng)求時(shí),DRAM訪問(wèn)請(qǐng)求無(wú)效,認(rèn)定提供給DRAM27的更新信號(hào),更新DRAM27。這樣一來(lái),在DRAM27更新過(guò)程中,禁止其它總線主控器訪問(wèn)DRAM27。
超高速緩存器訪問(wèn)控制電路303e、外部訪問(wèn)控制電路303g也根據(jù)信息C3,分別將超高速緩存器登記信號(hào)提供給超高速緩存器28,將外部訪問(wèn)請(qǐng)求傳遞給外部存儲(chǔ)器4、外部總線主控器41。在認(rèn)定更新信號(hào)時(shí),利用這些信號(hào)禁止從DRAM27向超高速緩存器28進(jìn)行超高速緩存器,也禁止從外部總線主控器41訪問(wèn)DRAM27。即在更新過(guò)程中只接受不伴隨訪問(wèn)DRAM27的訪問(wèn)請(qǐng)求。
如上所述,如果采用與本實(shí)施例有關(guān)的微處理器,則即使內(nèi)部存在多個(gè)總線主控器(例如CPU1和更新計(jì)時(shí)器26),也能控制微處理器的工作。
(5)清除當(dāng)數(shù)據(jù)MCPR的第7位的值指定進(jìn)行清除控制時(shí),如果超高速緩存器是寫(xiě)回方式時(shí),則在超高速緩存器中“臟”位被置位的數(shù)據(jù)被寫(xiě)返DRAM27。然后解除有效位的置位。這時(shí),由于從超高速緩存器28向DRAM27或從超高速緩存器28向外部存儲(chǔ)器4輸送數(shù)據(jù)而占用總線ID<0127>,故總線主控器不能訪問(wèn)DRAM27和外部存儲(chǔ)器4。
如果超高速緩存器是寫(xiě)通過(guò)方式,則更新的數(shù)據(jù)也被自入DRAM27和外部存儲(chǔ)器4中,如果進(jìn)行清除控制,便解除對(duì)超高速緩存器28的入口的有效位的置位。
其它變形(6)分開(kāi)的超高速緩存器圖25是表示本發(fā)明中采用所謂哈佛結(jié)構(gòu)時(shí)的結(jié)構(gòu)例的框圖。在微處理器103中能使超高速緩沖存儲(chǔ)器分開(kāi)成為都是2KB的、指令超高速緩存器28b和數(shù)據(jù)超高速緩存器28a的結(jié)構(gòu)。指令超高速緩存器28b通過(guò)只載置指令的指令總線II<0127>、而數(shù)據(jù)超高速緩存器28a則通過(guò)只載置指令以外的數(shù)據(jù)的數(shù)據(jù)總線ID<0127>,分別與DRAM27、CPU1、BIU3連接。
超高速緩存器方式可以對(duì)超高速緩存器28a、28b設(shè)定將DRAM27、外部總線主控器41中的哪一個(gè)作為超高速緩存的對(duì)象。
(7)多個(gè)微處理器并存圖26是表示2個(gè)微處理器101a、101b(任何一個(gè)都可以采用與微處理器101相同的結(jié)構(gòu))通過(guò)地址總線58、數(shù)據(jù)總線D<015>與同一個(gè)外部總線主控器41、外部存儲(chǔ)器4連接的形態(tài)的框圖。第1微處理器101a、第2微處理器101b各自使用存在于內(nèi)部安裝的DRAM27中的指令/數(shù)據(jù),進(jìn)行程序處理。
停機(jī)請(qǐng)求信號(hào)HREQ1、芯片選擇信號(hào)CS1從外部總線主控器41被提供給第1微處理器101a。另外,從第1微處理器101a將允許接受的HREQ確認(rèn)信號(hào)HACK1提供給外部總線主控器41。通過(guò)這些信號(hào)的互相往來(lái),由外部總線主控器41對(duì)第1微處理器101a所具有的DRAM27進(jìn)行寫(xiě)入、讀出。同樣,根據(jù)停機(jī)請(qǐng)求信號(hào)HREQ2、芯片選擇信號(hào)CS2、HREQ確認(rèn)信號(hào)HACK2的互相往來(lái),由外部總線主控器41對(duì)第2微處理器101b所具有的DRAM27進(jìn)行寫(xiě)入、讀出。
將第1及第2微處理器101a、101b共用的數(shù)據(jù)存入外部存儲(chǔ)器4中,根據(jù)第1、第2微處理器101a、101b的訪問(wèn)請(qǐng)求,也能讀出其內(nèi)容。這時(shí),將主/從信號(hào)MS1、MS2提供給各第1、第2微處理器101a、101b,以便兩個(gè)微處理器101a、101b不競(jìng)爭(zhēng)訪問(wèn),通過(guò)不相容地認(rèn)定這些信號(hào),就能具有確定一個(gè)微處理器為主,另一個(gè)為從的功能。這時(shí),成為主/從的微處理器有分別能與不能訪問(wèn)外部存儲(chǔ)器4的區(qū)別。
當(dāng)然,主/從信號(hào)MS1、MS2的認(rèn)定/取消是可以互相切換的。但應(yīng)在現(xiàn)正執(zhí)行中的總線操作結(jié)束后才能進(jìn)行切換。
微處理器101a、101b能將數(shù)據(jù)分別存入各自內(nèi)部安裝的DRAM27中。
用圖14已說(shuō)明過(guò),在各微處理器101a、101b的地址空間中,DRAM27被分配在地址00000000~001FFFFF,必須對(duì)這些物理地址加以區(qū)別。
例如,可將32位的地址空間(對(duì)一個(gè)地址存儲(chǔ)1字節(jié)的數(shù)據(jù),有4G字節(jié)的容量)中的地址00000000~001FFFFF分配給第1微處理器101a的內(nèi)部DRAM27,將地址01000000~011FFFFF分配給第2微處理器101b的內(nèi)部DRAM27。它們都被分配在邏輯空間內(nèi)的用戶空間(SID-0)中。通過(guò)如上分配地址空間,2個(gè)微處理器101a/101b能各利用24位的地址并行地對(duì)各自的內(nèi)部DRAM27進(jìn)行不同的處理。
如上所述,如果采用本發(fā)明,則由于具有多種超高速緩存器方式,所以用一個(gè)芯片就能適應(yīng)各種用途,能降低成本。另外,由于減少了管腳婁,從而降低了成本。通過(guò)控制向CPU進(jìn)行的脈沖串的輸送,能提高比內(nèi)部數(shù)據(jù)總線的位長(zhǎng)度短的外部數(shù)據(jù)總線的性能。
如果采用本發(fā)明的第1方面所述的微處理器,則不僅第1內(nèi)部總線主控器,而且外部總線主控器也能對(duì)上述存儲(chǔ)器進(jìn)行數(shù)據(jù)的讀、寫(xiě)。
如果采用本發(fā)明的第2方面所述的微處理器,則由于控制信號(hào)共用,所以不增加微處理器所必要的管腳數(shù),就能做到不僅第1內(nèi)部總線主控器、而且外部總線主控器也能對(duì)內(nèi)部存儲(chǔ)器進(jìn)行訪問(wèn),還能由第1內(nèi)部總線主控器訪問(wèn)外部存儲(chǔ)器。
如果采用本發(fā)明的第3方面所述的微處理器,則即使地址越過(guò)了規(guī)定的地址邊界,也能避免輸送錯(cuò)誤的數(shù)據(jù)。
如果采用本發(fā)明的第4方面所述的微處理器,則即使裝有多個(gè)內(nèi)部總線主控器,也能控制微處理器的工作。
如果采用本發(fā)明的第5方面所述的微處理器,則能選擇指令超高速緩存器方式或內(nèi)部共用超高速緩存器方式等多種超高速緩存器方式進(jìn)行超高速緩存,或不進(jìn)行超高速緩存。
權(quán)利要求
1.一種微處理器,它備有內(nèi)部存儲(chǔ)器;連接到上述存儲(chǔ)器上的內(nèi)部總線;通過(guò)上述內(nèi)部總線訪問(wèn)上述內(nèi)部存儲(chǔ)器的內(nèi)部總線主控器;以及控制上述內(nèi)部總線工作的總線接口,該微處理器的特征在于外部總線主控器及外部存儲(chǔ)器通過(guò)外部總線連接在上述微處理器的外部,上述微處理器還備有登記上述內(nèi)部存儲(chǔ)器和上述外部存儲(chǔ)器的數(shù)據(jù)的超高速緩沖存儲(chǔ)器,上述總線接口的特點(diǎn)為(a)具有與上述內(nèi)部總線寬度相等的緩沖器,(b)協(xié)調(diào)來(lái)自上述外部總線主控器對(duì)內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求和上述內(nèi)部總線主控器對(duì)內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求,(c)上述緩沖器和外部總線主控器在通過(guò)上述外部總線訪問(wèn)期間,接受來(lái)自內(nèi)部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器和上述超高速緩存器的訪問(wèn)請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的微處理器,其特征在于上述外部總線主控器訪問(wèn)上述內(nèi)部存儲(chǔ)器時(shí)和上述內(nèi)部總線主控器訪問(wèn)上述外部存儲(chǔ)器時(shí),使控制兩者的訪問(wèn)的控制信號(hào)共用。
3.根據(jù)權(quán)利要求1所述的微處理器,其特征在于當(dāng)上述外部總線主控器指定的多個(gè)地址越過(guò)由上述緩沖器的容量決定的地址邊界時(shí),存儲(chǔ)在上述緩沖器中的數(shù)據(jù)被暫時(shí)放出來(lái)。
4.一種微處理器,其特征在于備有內(nèi)部存儲(chǔ)器;連接到上述存儲(chǔ)器上的內(nèi)部總線;通過(guò)上述內(nèi)部總線訪問(wèn)上述內(nèi)部存儲(chǔ)器的第1及第2內(nèi)部總線主控器;以及控制上述內(nèi)部總線工作的總線接口,上述總線接口有存儲(chǔ)器訪問(wèn)控制裝置,用來(lái)當(dāng)上述第1內(nèi)部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求有效時(shí),便使上述第2內(nèi)部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求無(wú)效。
5.一種微處理器,它備有內(nèi)部存儲(chǔ)器;連接到上述內(nèi)部存儲(chǔ)器上的內(nèi)部總線;連接到上述內(nèi)部總線上的超高速緩沖存儲(chǔ)器;通過(guò)上述內(nèi)部總線訪問(wèn)上述內(nèi)部存儲(chǔ)器的內(nèi)部總線主控器;以及控制上述內(nèi)部總線工作的總線接口,該微處理器的特征在于外部總線主控器及外部存儲(chǔ)器通過(guò)外部總線連接在上述微處理器的外部,上述微處理器還備有登記上述內(nèi)部存儲(chǔ)器和上述外部存儲(chǔ)器數(shù)據(jù)的超高速緩沖存儲(chǔ)器,上述總線接口根據(jù)上述內(nèi)部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求及上述外部總線主控器對(duì)上述內(nèi)部存儲(chǔ)器的訪問(wèn)請(qǐng)求和指定超高速緩存器方式的信息,產(chǎn)生指定上述超高速緩沖存儲(chǔ)器的緩存器對(duì)象的登記信號(hào)。
全文摘要
一種外部也有總線主控器的微處理器,它將DRAM及超高速緩存器安裝在內(nèi)部。在微處理器101中,通過(guò)寫(xiě)入緩沖器5、選擇器7或DRAM27、超高速緩存器28、IQ8分別連接在總線D〈0∶127〉上。用數(shù)據(jù)總線D〈0∶15〉連接總線ID〈0∶127〉、微處理器101和外部存儲(chǔ)器4、外部總線主控器41,中間裝有BIU3。用地址總線58、控制總線56、57連接微處理器101、外部存儲(chǔ)器4、外部總線主控器41。BIU3控制對(duì)微處理器的內(nèi)部存儲(chǔ)器及其外部連接的存儲(chǔ)器的訪問(wèn)。
文檔編號(hào)G06F15/78GK1177143SQ9711340
公開(kāi)日1998年3月25日 申請(qǐng)日期1997年5月23日 優(yōu)先權(quán)日1996年9月13日
發(fā)明者高田由香里, 佐藤貢, 近藤弘郁, 澤井克典 申請(qǐng)人:三菱電機(jī)株式會(huì)社