新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于MIPS架構(gòu)的RISC微處理器RM7000A

基于MIPS架構(gòu)的RISC微處理器RM7000A

作者: 時間:2004-12-11 來源:網(wǎng)絡(luò) 收藏
摘要:概要介紹指令集的的大容量片內(nèi)緩存、超標(biāo)量流水線、指令雙發(fā)射、大量寄存器組等主要特性,并對其兩種應(yīng)用方案進(jìn)行探討。

關(guān)鍵詞:

引 言

??在眾多類型的 CPU體系中,(Microprocessor without Interlocked Pipeline Stages)是相當(dāng)成功的一種。自從1983年John Hennessy在斯坦福大學(xué)成功地完成了第一個采用理念的MIPS以來,MIPS構(gòu)架的CPU在網(wǎng)絡(luò)、通信、多媒體娛樂等領(lǐng)域得到了廣泛應(yīng)用。Cisco的路由器,IBM的網(wǎng)絡(luò)彩色打印機(jī),HP的4000、5000、8000、9000系列激光打印機(jī)及掃描儀,Sony的Playstation和Playstation 2游戲機(jī)等等,都是應(yīng)用了實現(xiàn)不同MIPS指令集的微處理器的產(chǎn)品。

??MIPS Technologies Inc本身不生產(chǎn)微處理器,它只設(shè)計高性能工業(yè)級的32位和64位CPU的結(jié)構(gòu)體系,并且向其它半導(dǎo)體公司提供使用其內(nèi)核(IP)的授權(quán),用于生產(chǎn)MIPS而又各具特色的微處理器。據(jù)MIPS公司網(wǎng)站介紹,現(xiàn)在已有超過50家公司申請了授權(quán),其中不乏IT界著名的大企業(yè),如:AMD、ATI、TI、NEC、Toshiba、Philips、PMC-Sierra、IDT、Quicklogic、Marvell等。

1 概述

??RM7000A是PMC-Sierra公司RM7000系列微處理器的一種,使用CMOS 0.18μm藝制造而成,內(nèi)含2個獨立的64位整型單元和1個64位浮點單元;片內(nèi)集成了主緩存和二級緩存以及外部擴(kuò)展緩存控制器(最高支持8MB三級緩存);具有1個時鐘周期發(fā)射2條指令的功能;支持?jǐn)?shù)據(jù)預(yù)?。≒refetch);最高工作頻率可達(dá)400MHz;可寬溫工作,350MHz工業(yè)級處理器工作溫度為-40~+85℃。

??該微處理器有以下主要特性。

(1)片內(nèi)集成大容量主緩存和二級緩存

??主緩存包括16KB指令緩存和16KB數(shù)據(jù)緩存。指緩和數(shù)緩都擁有各自的64位讀通道和128位寫通道,并且允許指緩和數(shù)緩?fù)瑫r被訪問。在400MHz時,主緩可以給整型單元和浮點型單元提供總計高達(dá)6.4GB/s的帶寬。256KB的二級緩存擁有一個64位的讀/寫共用通道,只有在訪問主緩存發(fā)生未命中的情況下才會使用到。

??主緩存和二級緩存均采用4路組相聯(lián)。緩存線長32字節(jié),均為非阻塞式緩存(non-blocking cache),即在緩存訪問產(chǎn)生未命中(cache miss),且這個未命中沒有被消除的情況下,處理器無需停頓等待,可以繼續(xù)進(jìn)行緩存訪問。RM7000A允許最多有兩個未命中時仍可訪問緩存。只有在下面兩種情況下,微處理器才會產(chǎn)生停頓:一是在前兩個未命中還沒消除,指令總線上又出現(xiàn)了對緩存的存取指令;二是產(chǎn)生了兩個未命中,而隨后的指令要從前面一個引起未命中的指令處獲取數(shù)據(jù)才能繼續(xù)執(zhí)行。

(2)指令雙發(fā)射機(jī)制(dual issue mechanism)

??RM7000A的指令分為四種類型:整數(shù)型、浮點型、分支轉(zhuǎn)移(branch)和存/?。╨oad/store)。處理器整型部件的超標(biāo)量分發(fā)單元含有兩個獨立的流水線:M-pipe(memory)和F-pipe(function)。其中,F(xiàn)-pipe處理整數(shù)型、分支轉(zhuǎn)移和浮點操作,如加、減、乘、除等;M-pipe負(fù)責(zé)整數(shù)型、存/取等操作,同時也進(jìn)行一些浮點數(shù)在寄存器間的移動。指令雙發(fā)射框圖如圖1所示。

??如果每過一個時鐘周期,每條流水線流出一條指令,在外部看來就有兩條指令同時被執(zhí)行。但是,在處理器中并不是總能做到雙發(fā)射的,這跟具體的指令組合有關(guān),比如:當(dāng)一個指令要處理控制寄存器時,就不能和其它的指令同時發(fā)射。

(3)超標(biāo)量流水線(superscalar pipeline)

??RM7000A包含一條5階超標(biāo)量指令流水線(度m=2),供M-pipe和F-pipe使用。每條指令被劃分為5個子過程:I為取指令,R為取寄存器數(shù),A為執(zhí)行,D為取數(shù)據(jù),W為寫回,如圖2所示。

??配合指令的雙發(fā)射機(jī)制,每過一拍,流水線都要流入兩條新的指令。在滿負(fù)荷的情況下,可以有10條指令在流水線不同的部件上同時運行,相當(dāng)于提高了工作頻率。

??在RM7000A中,實際上還存在一個7階流水線單獨處理浮點操作,不過,這個流水線對用戶來說是完全透明的。

(4)寄存器組(register files)

??RM7000A含有眾多的寄存器。

◆ 整型操作寄存器組。位于整型單元中,包括32個64位的通用寄存器(GPR),2個專用于整型乘、除運算的寄存器Hi和Lo,1個程序計數(shù)器PC(對用戶透明)。其中通用寄存器的r0被硬連接為0。它可以作為目的寄存器存放指令以后會舍棄的暫時結(jié)果,也可以根據(jù)需要為指令提供0作為操作數(shù)。

◆ 浮點操作寄存器組。包含32個64位的浮點通用寄存器(FGR)和32個32位控制寄存器。

◆ 系統(tǒng)控制寄存器組(CP0)。用于內(nèi)存管理調(diào)度、地址轉(zhuǎn)換、異常處理等。

(5)集成、高效的內(nèi)存管理單元

?? 為快速將虛擬地址轉(zhuǎn)換成物理地址,RM7000A使用一個大容量的全相聯(lián)TLB(Translation Lookaside Buffer,如圖3所示)來實現(xiàn)這個目標(biāo)。這個TLB被指令和數(shù)據(jù)共用,稱為JTLB(Joint TLB);可以配置成48對或64對入口,分別映射96頁或128頁的虛擬地址。頁面的大小可配置,從小到大依次為4K、16K、64K、256K、1M、4M、16M。當(dāng)發(fā)生TLB未命中時,RM7000A采用的替換算法主要是隨機(jī)替換,以簡化硬件設(shè)計。同時也提供鎖定特定地址機(jī)制,以便操作系統(tǒng)為提高性能而讓一些頁面持續(xù)被映射。

ASID――Address Space Identifier,虛擬空間標(biāo)識符,表示內(nèi)核態(tài)(kernel)、管態(tài)(supervisor)、用戶態(tài)(user)三種虛擬空間。

G――Global,每個TLB入口都有的標(biāo)識符。

(6)指令格式及尋址方式

??需要注意的一點是:盡管RM7000A是64位的微處理器,但它的指令長度都是固定的32位。

??RM7000A是一種典型的寄存器型(Register-Register)微處理器,即除了load/store指令外,其它的指令不能直接訪問內(nèi)存。這樣的好處顯而易見:寄存器的訪問速度比存儲器快得多,寄存器存儲使得編譯器的效率提高,于是程序的執(zhí)行速度加快;另外,表示寄存器的位數(shù)比表示內(nèi)存單元的位數(shù)要少,從而可以改善指令密度。

??MIPS類的指令可以用三種形式表示。

MIPS構(gòu)架支持兩種尋址方式。

◆ 立即數(shù)尋址(immediate)。例如:Add R1,#10,這里#10的代表常數(shù)10,指令含義是Regs[R1]←egs[R1]+10。

◆ 位移尋址(displacement)。例如:Add R1,10(R2),指令含義是Regs[R1]←egs[R1]+Mem[10+Regs[2]]。

對操作數(shù)稍做改變,可以得到另外兩種尋址方式。

◆ Add R1,(R2) Regs[R1]←Regs[R1]+Mem[Regs[R2]]

寄存器R2存放的只是一個地址,這個地址的內(nèi)容才是要取的數(shù)據(jù),這相當(dāng)于寄存器間接尋址。

◆ Add R1,10 Regs[R1]←Regs[R1]+Mem[10]

此時第二個寄存器必須是r0,借助于r0(如前所述,r0被硬接位0)提供的0,就得到了直接尋址方式。

因此,實際上微處理器有四種尋址方式可用,提高了編程的靈活性。

(7)數(shù)據(jù)類型

??MIPS體系對于對齊(align)有著相當(dāng)嚴(yán)格的要求,指令必須32位對齊;超過一個字節(jié)的數(shù)據(jù)必須按規(guī)則對齊:

◇半字的邊界要與偶數(shù)對齊;

◇字的邊界要與mod 4=0的字節(jié)對齊;

◇雙字的邊界要與mod 8=0的字節(jié)對齊。

如圖4所示,是數(shù)據(jù)對齊示意圖。采用這種方式對齊可以簡化硬件判斷、控制部分的設(shè)計,節(jié)省芯片空間,也有利于加快程序運行速度。

2 應(yīng)用及實現(xiàn)探討

??以RM7000A為基礎(chǔ),配合不同的外圍器件,可以構(gòu)成多種應(yīng)用形式。

(1)典型應(yīng)用

??圖5所示是一種較為簡單的應(yīng)用方式,特點是器件少、可靠性好、整個系統(tǒng)所占空間很小,適合于空間受到限制的領(lǐng)域。因為需要識別和驅(qū)動的設(shè)備不多,引導(dǎo)和應(yīng)用程序都相對簡單;通過Dual UART接口可以和主計算機(jī)通信,并且在主計算機(jī)的超級終端里顯示本系統(tǒng)運行的信息,如圖6所示。

具體應(yīng)用:

① 可以作為單獨的電腦板,配以適當(dāng)?shù)耐庠O(shè),構(gòu)成一個小型的高速計算機(jī)系統(tǒng),用于完成比較簡單且單一的任務(wù);

② 可以根據(jù)應(yīng)用的要求,增加總線的控制芯片和接口,作為一個總線上的CPU控制板(比如:PCI總線、CompactPCI總線),配合傳感器或其它板卡如AD/DA板、DSP通信板等,進(jìn)行測試、高速數(shù)據(jù)采集、大量的圖形圖像處理等工作;

③ 用于其它網(wǎng)絡(luò)設(shè)備中,如大型的路由器、交換機(jī)等。

(2)擴(kuò)展應(yīng)用

??上述應(yīng)用中,為減小體積,存儲容量受到了限制,也沒有提供類似鍵盤鼠標(biāo)的對外接口。而人們已經(jīng)習(xí)慣了PC的使用,總是希望能夠以比較熟悉的方式來操作其它系統(tǒng)。對上述應(yīng)用做適當(dāng)?shù)臄U(kuò)展,就可以達(dá)到近似于PC的結(jié)構(gòu),應(yīng)用框圖如圖7所示。

??通過增加南橋、超級I/O等芯片,就可以獲得類似于PC結(jié)構(gòu)中的各種接口。具體應(yīng)用如下:

① 作為開發(fā)板,測試、移植在MIPS系統(tǒng)上運行的不同操作系統(tǒng),開發(fā)調(diào)試基于MIPS的各種應(yīng)用軟件;

② 作為一個完整的系統(tǒng)構(gòu)成便攜式電腦;

③ 利用Dual UART的顯示,或者擴(kuò)展的VGA顯示功能,增大的外部存儲器容量,作為高速圖形工作站進(jìn)行圖形圖像的設(shè)計、開發(fā)工作;

④ 作為網(wǎng)絡(luò)服務(wù)器應(yīng)用于Internet和企業(yè)局域網(wǎng)中提供各種網(wǎng)絡(luò)服務(wù);

⑤ 作為分布式處理系統(tǒng)的一個節(jié)點工作站,比如銀行系統(tǒng)中,RM7000A的高速、寬帶能對各種交易請求做出快速響應(yīng);

⑥ 由于南橋引入了ISA總線,還可以改制成AT96總線方式,作為CPU控制板應(yīng)用于工控或其它地面設(shè)備中;同樣也可以擴(kuò)展出PCI、CompactPCI接口作為控制板用于各種民品軍品中。

結(jié) 語

??基于MIPS的微處理器在國外主要用于高端設(shè)備,在國內(nèi)的開發(fā)應(yīng)用還不是很廣。但是,MIPS強(qiáng)大的功能和它先進(jìn)的技術(shù)理念已經(jīng)逐漸為人們所認(rèn)識到。研制基于MIPS的高性能計算機(jī)系統(tǒng),進(jìn)而帶動相關(guān)操作系統(tǒng)的研究、移植,以及各種應(yīng)用程序的開發(fā),對于提高計算機(jī)應(yīng)用研究水平,提高產(chǎn)品尤其是軍品的性能和競爭力,具有很重要的現(xiàn)實意義。

(本文為縮寫版本,詳細(xì)內(nèi)容請見www.dpj.com.cn)



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉