存儲器管理部件的設(shè)計(jì)實(shí)現(xiàn)
出處:chunyang 發(fā)布于:2008-09-01 11:35:38
摘 要:主要介紹了一款32?。獾模遥桑樱媒Y(jié)構(gòu)CPU的存儲器管理部件的設(shè)計(jì)。在對存儲器管理部件的原理,存在的必要性等方面進(jìn)行介紹的基礎(chǔ)上,對設(shè)計(jì)的存儲器管理部件的結(jié)構(gòu),3種地址轉(zhuǎn)換機(jī)制:實(shí)地址轉(zhuǎn)換、塊地址轉(zhuǎn)換及段頁式地址轉(zhuǎn)換,以及部分單元電路等方面進(jìn)行了詳細(xì)的介紹。
隨著處理器主頻的不斷升高,訪問存儲器的速度就越來越成為制約處理器性能提高的瓶頸。如何更加有效地管理好更多的存儲空間成了急待解決的問題。本文是基于某32?。?a target="_blank">微處理器芯片研制而提出的,該CPU是一個(gè)高集成度的、深亞微米工藝制造的高速超標(biāo)量微處理器。本文將介紹其存儲器管理單元的地址變換機(jī)制的體系結(jié)構(gòu)設(shè)計(jì)及電路實(shí)現(xiàn)。
1存儲器管理部件概述
存儲器管理部件(Memory?。停幔睿幔纾澹恚澹睿簟。眨睿椋?,MMU)的主要任務(wù)是將由處理器發(fā)出的有效的是地址轉(zhuǎn)換為存儲器的物理地址。程序訪問存儲器使用的是有效地址,而處理器訪問存儲器使用物理地址[1]。其轉(zhuǎn)換方式主要有實(shí)地址模式、塊地址轉(zhuǎn)換和段頁式地址轉(zhuǎn)換3種。在地址轉(zhuǎn)換過程中,MMU把CPU發(fā)出的32?。庥行У刂忿D(zhuǎn)換成52?。馓摂M地址,然后再轉(zhuǎn)換成32?。馕锢淼刂?。有效地址空間分為段(256 M)或塊(128k ̄256?。停?。段內(nèi)再進(jìn)一步細(xì)分為4 kB的頁。對于每個(gè)塊或頁,由操作系統(tǒng)產(chǎn)生地址描述符(頁表項(xiàng)PTE或BAT項(xiàng));在塊或頁被訪問時(shí),MMU利用這些描述符產(chǎn)生物理地址、保護(hù)信息及其他控制信息,為了快速訪問,還設(shè)計(jì)了TLB和BAT寄存器。
圖1是MMU的結(jié)構(gòu)框圖。有效地址的高20位EA0 ̄EA19轉(zhuǎn)換成物理地址的PA0 ̄PA19,低12位EA?。玻埃牛粒常弊鳛轫搩?nèi)偏移量不轉(zhuǎn)換。地址轉(zhuǎn)換之后,MMU根據(jù)產(chǎn)生的32 b物理地址訪問存儲器子系統(tǒng)。

?。驳刂忿D(zhuǎn)換機(jī)制
如圖2所示。當(dāng)機(jī)器狀態(tài)寄存器MSR[IR]=0或MSR[DR]=0,采用實(shí)地址轉(zhuǎn)換模式,即直接把有效地址當(dāng)作物理地址去訪問存儲器;當(dāng)有效地址范圍比連續(xù)的物理存儲器的單頁(4 kB)大時(shí),采用塊地址轉(zhuǎn)換(BAT),這時(shí)MSR[IR]=1和/或MSR[DR]=1,匹配的BAT項(xiàng)的優(yōu)先級比任何段描述符都要高,完全忽略段描述符的信息;當(dāng)MSR[DR]=1或MSR[IR]=1,且地址不由BAT機(jī)制進(jìn)行轉(zhuǎn)換,當(dāng)相應(yīng)的段描述符的T=0時(shí),選擇段地址轉(zhuǎn)換模式。

圖3所示為塊地址轉(zhuǎn)換的BAT陣列比較流程。塊地址轉(zhuǎn)換由BAT陣列實(shí)現(xiàn),BAT陣列存有8個(gè)存 儲器塊的地址轉(zhuǎn)換信息,BAT陣列由操作系統(tǒng)維護(hù),通過一組16個(gè)專用寄存器實(shí)現(xiàn),每塊由一對BAT寄存器(BATU,BATL)組成,保存著塊的有效地址和物理地址的對應(yīng)關(guān)系。進(jìn)行指令地址轉(zhuǎn)換和數(shù)據(jù)地址轉(zhuǎn)換各有4對BAT寄存器。BAT陣列采用了全相聯(lián)結(jié)構(gòu),所以地址可以存放在任意一個(gè)BAT[2]。另外,4個(gè)BAT項(xiàng)的有效地址字段同時(shí)與訪問的有效地址比較來檢查是否匹配。每對BAT寄存器定義了塊的有效地址的起始地址、塊的尺寸、物理地址空間相應(yīng)的塊的起始位置。如果一個(gè)有效地址在一對BAT寄存器定義的范圍內(nèi),其物理地址將由塊的物理地址的起始地址加上低端的有效地址偏移量組成?!—お?/FONT>

下面的方程式定義了對于一個(gè)特定的訪問,BAT項(xiàng)是否有效:
?。拢粒皂?xiàng)有效=(Vs?。Α。停樱遥郏校遥荩ǎ郑稹。Α。停樱遥郏校遥荩?/FONT>
對于給定的訪問,若BAT項(xiàng)無效,將不會進(jìn)行地址轉(zhuǎn)換。
BAT寄存器(BATU,BATL)存放的是存儲器塊的有效地址與物理地址的映射關(guān)系。該映射包括用于與有效地址相比較的有效地址位、存儲器/cache訪問模式位、塊保護(hù)位。塊的尺寸和起始地址由物理塊號和塊尺寸的定義。對塊內(nèi)的物理存儲器的訪問流程如圖4所示。

頁地址轉(zhuǎn)換使用段描述符(提供虛擬地址和保護(hù)信息)和頁表項(xiàng)(即PTE,提供物理地址和頁保護(hù)信息)。段描述符由操作系統(tǒng)編程,為段提供虛擬ID。另外,操作系統(tǒng)還在存儲器中創(chuàng)建頁表以提供虛擬地址(在PTE)到(存儲器頁)物理地址的映射關(guān)系。有效地址到物理地址的轉(zhuǎn)換如圖5所示。

在概念上,每次訪問都必須通過查找存儲器的頁表進(jìn)行地址轉(zhuǎn)換,所以,為了提高性能,采用了片上TLB來緩存一部分常用的PTE,以此減少大部分訪問的時(shí)間。因此,地址轉(zhuǎn)換的步將會是TLB查找。如果可以找到需要的PTE,就不需查找頁表。
頁表采用了可變長的數(shù)據(jù)結(jié)構(gòu),定義了虛擬頁號與物理頁號的映射關(guān)系。頁表包含有許多頁表項(xiàng)組(PTEG),1個(gè)PTEG有8個(gè)8 B的PTE,因此,每個(gè)PTEG是64?。麻L。PTEG地址是頁表搜索操作的起點(diǎn)。對于一個(gè)給定的PTE,我們定義他可能存放在2個(gè)PTEG中16個(gè)可能位置的任意一個(gè)。
頁表搜索操作定義為在PTEG和第二PTEG中查找PTE。當(dāng)頁表搜索操作開始時(shí),用虛擬 地址執(zhí)行散列函數(shù),然后散列函數(shù)的輸出與SDR1寄存器(由操作系統(tǒng)編程)的位連接產(chǎn)生PTEG的物理地址。接著一個(gè)接一個(gè)地查找PTEG的PTE,看是否命中。若未命中,則執(zhí)行第二散列函數(shù)以產(chǎn)生第二PTEG地址,再次進(jìn)行頁表搜索?!—おおおおおおおおおおおおおおおお?/FONT>
圖6是TLB與虛擬地址的比較電路。用了2個(gè)36?。獾膭討B(tài)比較器,每個(gè)作為36個(gè)2 輸入動態(tài)異或門的輸入,從而實(shí)現(xiàn)32?。饣蚍枪δ堋D示為其中1 b。只有當(dāng)2個(gè)RAM陣列的輸出完全相等,CLK為高電平時(shí),比較電路會輸出命中信號。

3結(jié)語
這種設(shè)計(jì)方案已在該微處理器上實(shí)施,并成功地通過測試。整個(gè)設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法。前期先用仿真工具調(diào)試電路,進(jìn)行功能測試,然后綜合得到滿足要求的電路結(jié)構(gòu),在布局布線工具上生成具體的電路,進(jìn)行后仿真。在整個(gè)CPU的設(shè)計(jì)過程中,存儲器的管理非常重要,訪存是CPU速度的瓶頸,所以如何設(shè)計(jì)好MMU很重要。在該系統(tǒng)存儲器的管理實(shí)現(xiàn)中,參考了很多類似結(jié)構(gòu),進(jìn)行了幾套方案的比較,才滿足設(shè)計(jì)的要求。
請登陸: 維庫電子市場網(wǎng)(m.58mhw.cn) 瀏覽更多信息
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52









