• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      內(nèi)存推移理論及其實(shí)驗(yàn)

      2018-05-16 03:16:12李凱凱歐陽山周時(shí)強(qiáng)
      關(guān)鍵詞:存器窗框存儲器

      李凱凱,金 翊,歐陽山,周時(shí)強(qiáng)

      三值光學(xué)計(jì)算機(jī)[1-10]具有數(shù)據(jù)位眾多、按位可重構(gòu)、按位可分配等應(yīng)用特色[11-15],適合處理大批量數(shù)據(jù)[16-18].正是由于這些特性,使得三值光學(xué)計(jì)算機(jī)對存儲器有特殊要求:一是能夠在處理器與非易失性存儲器之間高速交換大量數(shù)據(jù);二是需要大容量的隨機(jī)訪問存儲器,目前的容量要求為數(shù)百GB或TB量級,且在這方面的要求會越來越高.由于在傳統(tǒng)的電子計(jì)算機(jī)存儲體系中,非易失性存儲器(TB級容量的外存)與CPU之間的數(shù)據(jù)交換需要由隨機(jī)訪問存儲器(GB級容量的內(nèi)存)來中轉(zhuǎn),故難以滿足三值光學(xué)計(jì)算機(jī)對存儲器的特殊要求.因此,需要為三值光學(xué)計(jì)算機(jī)研發(fā)具有大容量、高訪問速度、非易失且可以被隨機(jī)讀寫的新型存儲器系統(tǒng).

      為滿足三值光學(xué)計(jì)算機(jī)對存儲器的新需求,2013年上海大學(xué)三值光學(xué)計(jì)算機(jī)研究團(tuán)隊(duì)提出了雙空間存儲器結(jié)構(gòu)和理論[19-20].這種新的存儲體系將非易失性塊地址空間和隨機(jī)訪問字地址空間落實(shí)到由非易失性隨機(jī)訪問存儲器(non-volatile random access memory,NVRAM)構(gòu)成的同一個(gè)存儲器實(shí)體上,其中最關(guān)鍵的是將傳統(tǒng)內(nèi)存空間映射到巨大的雙空間存儲器不同段落上的新理論——內(nèi)存推移理論.雙空間存儲器及其內(nèi)存推移理論已經(jīng)在理論和模擬實(shí)驗(yàn)中獲得成功,因此用實(shí)物來實(shí)現(xiàn)雙空間存儲器和內(nèi)存推移理論成為最終證實(shí)這一新型存儲體系和相關(guān)理論的關(guān)鍵,也是在實(shí)踐中完善雙空間存儲器理論的關(guān)鍵一環(huán).本工作詳細(xì)介紹了所構(gòu)建的第一個(gè)內(nèi)存推移寄存器組及所完成的內(nèi)存推移操作.由于雙空間存儲器和內(nèi)存推移理論可以與各種處理器配合,將其應(yīng)用于電子計(jì)算機(jī)后,會徹底消除大量數(shù)據(jù)和程序在內(nèi)存與外存之間的復(fù)制過程,有效提高電子計(jì)算機(jī)的效率,并且能夠自然地實(shí)現(xiàn)對隨機(jī)寫入數(shù)據(jù)的非易失性保存,非常有利于實(shí)施目前廣受關(guān)注的內(nèi)存計(jì)算技術(shù).因此,在本工作給出的實(shí)驗(yàn)研究中以常用的嵌入式系統(tǒng)[21]S3C2440為處理器,通過將一個(gè)bank的2 MB內(nèi)存空間在1 GB隨機(jī)訪問字空間上任意推移,證實(shí)了雙空間存儲器理論和內(nèi)存推移理論在理論上的正確性和實(shí)踐上的可行性.

      1 基礎(chǔ)理論

      1.1 雙空間存儲器

      文獻(xiàn)[19-20]給出了雙空間存儲器的詳細(xì)理論、結(jié)構(gòu)和技術(shù),并指出:雙空間存儲器是利用NVRAM構(gòu)造的新型存儲系統(tǒng),同時(shí)具有非易失存儲特性的塊空間和可隨機(jī)訪問的字空間.雙空間存儲器將內(nèi)存空間和外存空間落實(shí)在同一個(gè)存儲實(shí)體上,塊空間在雙空間存儲器上安裝的程序和保存的數(shù)據(jù)可以通過字空間運(yùn)行和隨機(jī)訪問,完全省去了程序和數(shù)據(jù)在內(nèi)存與外存之間的拷貝過程,從而大幅度提高了計(jì)算機(jī)的運(yùn)行效率.文獻(xiàn)[19]還指出:如果將操作系統(tǒng)、程序注冊表等系統(tǒng)運(yùn)行的基本程序和數(shù)據(jù)放置在CPU可以永久訪問到的字空間范圍——不可閉窗(詳情見2.5節(jié))中,就可省去開機(jī)時(shí)引導(dǎo)操作系統(tǒng)的過程;如果在不可閉窗內(nèi)增設(shè)一個(gè)關(guān)機(jī)狀態(tài)表來記錄關(guān)機(jī)時(shí)刻CPU的運(yùn)行現(xiàn)場,就可在下次開機(jī)時(shí)從關(guān)機(jī)狀態(tài)表迅速恢復(fù)上次關(guān)機(jī)時(shí)CPU的現(xiàn)場,實(shí)現(xiàn)開機(jī)后CPU立刻接續(xù)上次關(guān)機(jī)時(shí)的工作,使開關(guān)計(jì)算機(jī)如同開關(guān)電燈.

      由于NVRAM技術(shù)的進(jìn)步,尤其是2015年8月公布的3D Xpoint技術(shù)提供了性能卓越的NVRAM器件,用NVRAM構(gòu)造計(jì)算機(jī)的存儲器已成為未來的潮流.Intel公司已于2016年4月宣稱其下一代PC——OPTANE將使用NVRAM來構(gòu)造內(nèi)存.考慮到64位CPU的內(nèi)存地址線已經(jīng)多達(dá)64根,而理論上OPTANE的內(nèi)存可達(dá)264B,即16 EB容量(雖然這個(gè)內(nèi)存對于PC來說太大了,即便只使用40根地址線,也能構(gòu)造出1 TB的超級內(nèi)存).超級內(nèi)存足以容納PC的所有程序和數(shù)據(jù),而不再需要外存,但是要把當(dāng)前存儲于U盤、光盤、硬盤和網(wǎng)絡(luò)上的以塊為單位來組織和管理的文件裝入這個(gè)超級內(nèi)存,就需要在超級內(nèi)存上構(gòu)造出塊空間.一旦再構(gòu)造了塊空間,超級內(nèi)存就在事實(shí)上成為了雙空間存儲器的一個(gè)實(shí)例.

      1.2 內(nèi)存推移理論

      三值光學(xué)計(jì)算機(jī)研究團(tuán)隊(duì)在構(gòu)造雙空間存儲器時(shí),發(fā)明了將內(nèi)存空間自動映射到巨大的雙空間存儲器字空間上任意區(qū)段的技術(shù),稱為內(nèi)存推移理論.這項(xiàng)發(fā)明的核心是構(gòu)造了如圖1中點(diǎn)劃線框內(nèi)所示的推移鎖存器組以及相應(yīng)的操作技術(shù).

      圖1推移鎖存器組結(jié)構(gòu)Fig.1 Structure of the latch group

      圖1 中的處理器可以是任何種類的CPU或內(nèi)存訪問主控設(shè)備,此處采用常見的簡單處理器——嵌入式系統(tǒng)S3C2440.假設(shè)圖1中處理器的內(nèi)存地址線有n條(AB(n?1)~0),其中低序號的s條地址線(AB(s?1)~0)與雙空間存儲器中低序號的s條地址線(CAB(s?1)~0)相連接;而其余的n?s條高序號地址線(AB(n?1)~s)連接到推移鎖存器組輸出口譯碼器Yc的輸入端I(n?s);處理器的數(shù)據(jù)總線DB連接到雙空間存儲器的數(shù)據(jù)總線CDB,其中m+1條數(shù)據(jù)線(DBm~0)還連接到各個(gè)推移鎖存器(除推移鎖存器0外)的數(shù)據(jù)輸入端DB.

      圖1中的推移鎖存器組包含2n?s個(gè)推移鎖存器,設(shè)定編號為推移鎖存器0~2n?s?1,還包含一個(gè)輸出口譯碼器Yc和一個(gè)寫入口譯碼器Yr.推移鎖存器0的構(gòu)造與其他推移鎖存器不同.它沒有數(shù)據(jù)輸入端DB和寫入控制端IE(—表示低電平有效),因此其設(shè)定值(圖1中均設(shè)定為1)不可能被修改,但數(shù)據(jù)輸出口Q及其輸出控制端與其他推移鎖存器相同.推移鎖存器1~2n?s?1的結(jié)構(gòu)完全相同.它們的數(shù)據(jù)輸入口DB都連接到處理器數(shù)據(jù)總線的DBm~0上.當(dāng)某個(gè)推移鎖存器的寫入控制端IE有效時(shí),DBm~0上的數(shù)據(jù)將寫入該推移鎖存器并被保存,從而修改該推移鎖存器的值Dm~D0.

      Yc的每個(gè)輸出端P i(i=0,1,···,2n?s?1)分別控制一個(gè)推移鎖存器的輸出控制端OE,故稱Yc為輸出口譯碼器.Yc的輸入端I(n?s)連接處理器內(nèi)存地址線的高序號部分AB(n?1)~s,同時(shí)其有效使能端Co接地,于是Yc總有效.因此,處理器內(nèi)存地址線的高序號部分AB(n?1)~s的編碼i總是被Yc譯碼.譯碼完成后,Yc的輸出端P i使推移鎖存器i的輸出控制端有效,于是推移鎖存器i將其保存的m位數(shù)據(jù)(Dm~D0)經(jīng)數(shù)據(jù)輸出口Q送到雙空間存儲器地址線的m根高序號地址線(CAB(m+s?1)~s)上.推移鎖存器i將處理器送出的內(nèi)存地址AB(n?1)~0自動映射為雙空間存儲器的CAB(m+s?1)~0地址,而處理器本身完全不會受到影響.當(dāng)處理器對內(nèi)存空間的訪問維持在低序號地址線AB(s?1)~0上的情況發(fā)生改變,而高序號地址線AB(n?1)~s的值i不變時(shí),推移鎖存器i保持被選通.此時(shí),雙空間存儲器的高序號地址線(CAB(m+s?1)~s)的值不改變,處理器對AB(s?1)~0給定的內(nèi)存地址范圍的訪問全部被推移鎖存器i自動引導(dǎo)到由CAB(s?1)~0給定的雙空間存儲器范圍內(nèi).因此,稱內(nèi)存空間范圍AB(s?1)~0為映射窗,稱雙空間存儲器范圍CAB(s?1)~0為窗壁——剛好能安置一個(gè)映射窗的墻壁.一個(gè)窗壁上的所有存儲單元的高序號地址線CAB(m+s?1)~s相同,故選用這個(gè)值作為窗壁編號.當(dāng)一個(gè)推移鎖存器被選通后,其值Dm~D0被送上CAB(m+s?1)~s,因此Dm~D0本質(zhì)上就是窗壁編號.推移鎖存器通過保存的窗壁編號將映射窗引導(dǎo)到指定的窗壁.針對這一過程,可以形象地認(rèn)為每個(gè)推移鎖存器有一個(gè)虛擬的存儲空間,稱其為窗框,推移鎖存器的編號i就是對應(yīng)的窗框編號.于是,推移鎖存器i的值為Dm~D0,就是將第i號窗框安置在Dm~D0號窗壁.給每個(gè)推移鎖存器賦不同的值,就是將所有的窗框安置在了不同的窗壁上.內(nèi)存地址線的高序號部分AB(n?1)~s的每個(gè)值都會選擇一個(gè)推移鎖存器,等同于選擇一個(gè)窗框,因此所有窗框的容量之和正好就是內(nèi)存空間的大小.AB(n?1)~s的改變就是把映射窗從一個(gè)窗框移到另一個(gè)窗框——映射窗推移.顯然,映射窗無法到達(dá)沒有窗框的窗壁,這就是引入窗框概念的根本原因.

      Yr的每個(gè)輸出端P j(j=1,2,···,2n?s?1)分別控制一個(gè)推移鎖存器的寫入控制端,故稱Yr為寫入口譯碼器.Yr的有效使能端C與非門F的輸出端相接,F的輸入為雙空間存儲器的高序號地址線CAB(m+s?1)~(n?s),同時(shí)Yr的輸入端I(n?s)連接雙空間存儲器低序號地址線CAB(n?s?1)~0. 當(dāng)訪問雙空間存儲器的高序號地址線CAB(m+s?1)~(n?s)不全為1時(shí),Yr無效,Yr的所有輸出端P j都輸出1,所有推移鎖存器的寫入控制端均無效,所有推移鎖存器都不接收DBm~0上的值,則推移鎖存器自身保持的數(shù)值都不會被改寫.僅當(dāng)CAB(m+s?1)~(n?s)全為1時(shí),Yr的C有效. 這時(shí)Yr輸入端I(n?s)收到CAB(n?s?1)~0上的地址碼j,相應(yīng)地使其輸出端P j為低電平,其他輸出端均為高電平.于是推移鎖存器j的寫入控制端有效,該推移鎖存器j就會接收處理器數(shù)據(jù)總線DBm~0上的值來修改自身保持的數(shù)值,而其他推移鎖存器則無改變,推移鎖存器j對應(yīng)的窗框j被移動到新的窗壁上——窗框推移.考慮到各個(gè)推移鎖存器的寫入控制端在CAB(m+s?1)~(n?s)全為1時(shí)有效,可知各推移鎖存器的寫入控制端被安排在雙空間存儲器高序號地址線的一段連續(xù)區(qū)域(CAB(n?s?1)~0的取值范圍),稱這段地址范圍為推移矢量表.

      顯然,內(nèi)存推移理論能夠顯著減少處理器隨機(jī)訪問雙空間存儲器所需的地址線數(shù)目,無需內(nèi)存分頁管理技術(shù),可方便地實(shí)現(xiàn)多處理器共享/分享存儲器技術(shù).這意味著內(nèi)存推移理論將降低CPU的硬件復(fù)雜度和內(nèi)存管理復(fù)雜度,增加CPU使用存儲器的靈活性.

      2 實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)

      2.1 實(shí)驗(yàn)?zāi)繕?biāo)

      本工作通過以下具體實(shí)驗(yàn)驗(yàn)證了內(nèi)存推移理論[22-24]:①改變處理器訪存地址的低位,驗(yàn)證映射窗的存在和處理器透過映射窗對雙空間存儲器的隨機(jī)訪問能力;②改變處理器訪存地址的高位,驗(yàn)證映射窗推移技術(shù);③修改推移鎖存器的值,驗(yàn)證窗框推移技術(shù);④修改推移鎖存器0的操作,驗(yàn)證不可閉窗的存在.

      鑒于本工作的研究目標(biāo)是內(nèi)存空間在雙空間存儲器字空間上的推移理論,而該理論與雙空間存儲器的塊空間無關(guān),故不考慮雙空間存儲器中塊空間的各類問題.

      2.2 雙空間存儲器設(shè)計(jì)

      內(nèi)存推移理論的功能是將較小的內(nèi)存空間分時(shí)映射到大容量雙空間存儲器的不同區(qū)段.本實(shí)驗(yàn)的目標(biāo)在于驗(yàn)證這項(xiàng)理論的正確性和可行性,因此所設(shè)計(jì)的雙空間存儲器只要比被推移的內(nèi)存空間總?cè)萘看髷?shù)百倍即可.鑒于本實(shí)驗(yàn)設(shè)定的內(nèi)存空間總?cè)萘繛? MB(S3C2440處理器內(nèi)存空間的一個(gè)bank),故選用1 GB的雙空間存儲器.相應(yīng)地,設(shè)計(jì)該雙空間存儲器地址線為30根,定義為CAB29~0.為簡化實(shí)驗(yàn)操作,還約定只使用占連續(xù)4個(gè)字節(jié)地址的32位數(shù)據(jù)總線寬度.

      為節(jié)約實(shí)驗(yàn)成本,在保證實(shí)驗(yàn)?zāi)繕?biāo)不受損害的前提下,本實(shí)驗(yàn)在多種NVRAM中選用常見的型號為S29GL01GNOR Flash芯片來構(gòu)建雙空間存儲器.這種芯片的存儲容量在字模式下為64 M×16位,故本實(shí)驗(yàn)用2片S29GL10G芯片經(jīng)地址線并接且數(shù)據(jù)線并列后,形成64 M×32位的存儲芯片對,再用4對存儲芯片構(gòu)造出1 GB的雙空間存儲器.由于本實(shí)驗(yàn)是以連續(xù)4個(gè)字節(jié)的32位寬度來使用數(shù)據(jù)總線,故無需使用處理器的AB0和AB1地址線,而將處理器地址線AB2連接到雙空間存儲器地址線的CAB0.依此類推,處理器地址線ABn連接雙空間存儲器地址線CABn?2.

      2.3 推移鎖存器組設(shè)計(jì)

      推移鎖存器組是連接CPU與雙空間存儲器字空間的重要紐帶.對于CPU來說,推移鎖存器組屏蔽了雙空間存儲器的容量大小;對于雙空間存儲器來說,推移鎖存器組屏蔽了CPU的尋址能力.因此,只要有合適的推移鎖存器組,CPU就能夠和雙空間存儲器協(xié)同工作.因此,推移鎖存器組的結(jié)構(gòu)要由系統(tǒng)中的CPU與設(shè)定的雙空間存儲器共同決定.

      推移鎖存器組中包含的鎖存器數(shù)量等于窗框的數(shù)量.從圖1中可以看出,窗框的數(shù)量與映射窗的大小存在制約關(guān)系,映射窗變大一倍,窗框的數(shù)量就減少一半.在本實(shí)驗(yàn)中,被推移的內(nèi)存空間總?cè)萘繛? MB,若設(shè)定映射窗大小為218B(256 KB),則相應(yīng)的窗框數(shù)量為2(21?18)個(gè),即設(shè)定推移鎖存器組包含8個(gè)鎖存器.

      每個(gè)推移鎖存器的有效鎖存數(shù)據(jù)位數(shù)取決于雙空間存儲器的窗壁數(shù)量.對于給定的雙空間存儲器,窗壁的數(shù)量由窗壁的大小來決定,而窗壁的大小等于映射窗的大小,故本實(shí)驗(yàn)的窗壁大小為256 KB.于是1 GB的雙空間存儲器就有2(30?18)=4 096個(gè)窗壁,編號為0~4 095,因此每個(gè)推移鎖存器要有12位.本實(shí)驗(yàn)采用16位的鎖存器74ACT16373來構(gòu)造推移鎖存器,將其低12位作為有效值,高4位棄之不用.

      2.4 推移指令設(shè)計(jì)

      對推移鎖存器的操作分為映射窗推移和窗框推移兩種.在系統(tǒng)設(shè)定完畢后,每當(dāng)處理器給出的內(nèi)存地址高位部分發(fā)生改變,系統(tǒng)就自動完成映射窗推移,無須為此設(shè)置專門的指令.而窗框推移必須改變相應(yīng)的推移鎖存器的值,這是對特定地址的賦值操作,對應(yīng)著一條特定的賦值指令,即推移指令.在系統(tǒng)設(shè)定中,每個(gè)推移鎖存器都有獨(dú)立的寫入端口,且每個(gè)寫入端口都與雙空間存儲器的一個(gè)隨機(jī)訪問地址相關(guān)聯(lián),故稱該地址為推移鎖存器的寫入端地址[20].此時(shí),對推移鎖存器的具體賦值操作如下:CPU給出一個(gè)特定的內(nèi)存地址,其高位部分選擇特定的不可修改推移鎖存器,即將映射窗推移到一個(gè)特定的窗壁,而該內(nèi)存地址的低位部分則在該窗壁中選通一個(gè)可修改推移鎖存器的寫入端口,并通過賦值指令修改該推移鎖存器保持的值.于是,推移指令的形式為向內(nèi)存空間特定地址賦值的語句,且給出的新數(shù)值為目標(biāo)窗壁的編號.

      本實(shí)驗(yàn)中的處理器部件選用基于S3C2440制作的TQ2440 Core 2.0核心板.S3C2440處理器采用I/O端口和存儲器統(tǒng)一編址方式,指令使用32位尋址,但僅設(shè)置30根外部存儲器的邏輯地址線,對應(yīng)的地址范圍為0000 00000~3fffffffH,故最多可外接存儲器1 GB,且指令中32位地址的最高兩位無效.將30根外接地址線分為兩組:低27根以地址線的形態(tài)給出,稱為A26~A0;高3根則以8根bank使能線的形態(tài)給出,稱為bank7~bank0,即將外接存儲器的1 GB空間分成8個(gè)128 MB的bank,由指令中的A29~27來選通各bank的使能端,其中選通bank1使能端的地址是A29~27=001B.

      TQ2440 Core 2.0核心板對外提供了21根地址線A[20∶0]和bank1~bank5以及bank7的使能線,因此該核心板允許給bank1~bank5以及bank7各外接2 MB隨機(jī)訪問存儲器.在不影響實(shí)驗(yàn)?zāi)繕?biāo)的前提下,為方便設(shè)計(jì),本實(shí)驗(yàn)僅將bank1的2 MB外接隨機(jī)訪問存儲器空間用于推移操作的內(nèi)存空間,所以A[20∶0]就是本實(shí)驗(yàn)的處理器地址線AB20~0.對于這2 MB外部擴(kuò)展內(nèi)存,S3C2440的地址線A26~21無意義,因此默認(rèn)為00 0000B.于是,當(dāng)S3C2440處理器訪問本實(shí)驗(yàn)所設(shè)定的內(nèi)存空間時(shí),在指令中必須給出如下的的32位地址:0800 0000H~081fffffH,此處稱其為訪存地址.

      在本實(shí)驗(yàn)中,通過地址線的具體連接方式將8個(gè)推移鎖存器的寫入端地址設(shè)定在雙空間存儲器字空間的3fffffe0~3fffffff區(qū)域,即設(shè)定在第4 095號窗壁地址最高的32個(gè)字節(jié)中,并設(shè)定通過推移鎖存器0訪問0fffH號窗壁.于是,當(dāng)改寫推移鎖存器的值時(shí),必須先保證推移鎖存器0中保有0fffH值,再用寫入訪存地址0803ffe0H~0803ffffH范圍的指令來改寫相應(yīng)的推移鎖存器,從而將對應(yīng)的窗框移動到指定的窗壁.由于S3C2440處理器的A0和A1地址線沒有參與雙空間存儲器尋址,故每個(gè)推移鎖存器的寫入端有4個(gè)連續(xù)的訪存地址(見表1),其作用完全相同,本實(shí)驗(yàn)只使用寫入端地址1.推移鎖存器2的寫入端訪存地址為0803ffe8H,由于本實(shí)驗(yàn)總是以連續(xù)4個(gè)字節(jié)的32位寬度來使用數(shù)據(jù)總線,因此將2號窗框推移到第1 024號窗壁上的推移指令為*(unsigned int*)(0x0803ffe8)=0x0400,其中0x是十六進(jìn)制數(shù)據(jù)前綴.

      表1 推移鎖存器寫入端地址Table 1 Write end addresses for the latch group

      2.5 不可閉窗設(shè)計(jì)

      計(jì)算機(jī)系統(tǒng)復(fù)位后,將自動執(zhí)行位于特定地址的第一條指令,并由此轉(zhuǎn)入系統(tǒng)的初始化程序,而在系統(tǒng)運(yùn)行時(shí),又需要將常用程序或者常用數(shù)據(jù)駐留在內(nèi)存中,以確保較高的訪問速度.在使用雙空間存儲器的新型電子計(jì)算機(jī)中,內(nèi)存空間對應(yīng)所有窗框組成的空間.而程序和數(shù)據(jù)都位于窗壁上,于是駐留內(nèi)存的程序和數(shù)據(jù)對應(yīng)的窗壁永遠(yuǎn)可以被隨機(jī)訪問.這意味著該窗壁上的窗框永久存在,不得被移走.這種窗壁被稱為不可閉窗,其對系統(tǒng)運(yùn)行至關(guān)重要.

      由于本實(shí)驗(yàn)使用的是掉電易失性鎖存器,為了彌補(bǔ)這一不足,將采用以下方案:先對選定的推移鎖存器寫入選定的不可閉窗的窗壁編號,然后手動將推移鎖存器的寫入控制端接入低電平,使該推移鎖存器成為不可修改,對應(yīng)的窗框就永久駐留在選定的窗壁上,使得該窗壁成為不可閉窗.本實(shí)驗(yàn)選定4 095號窗壁為不可閉窗,持續(xù)占有0號窗框,于是對推移鎖存器0實(shí)施上述操作.

      2.6 實(shí)驗(yàn)板電路設(shè)計(jì)和制作

      本實(shí)驗(yàn)的主要目標(biāo)是用實(shí)物系統(tǒng)來驗(yàn)證雙空間存儲器的核心理論——內(nèi)存推移理論.由于雙空間存儲器是三值光學(xué)計(jì)算機(jī)研究團(tuán)隊(duì)在2013年提出的新型存儲器理論和結(jié)構(gòu),在本實(shí)驗(yàn)成功之前尚沒有實(shí)物存在.因此,本實(shí)驗(yàn)將設(shè)計(jì)和制作出第一個(gè)真實(shí)的雙空間存儲器系統(tǒng)并實(shí)施內(nèi)存推移操作.

      在規(guī)劃本實(shí)驗(yàn)時(shí),考慮到構(gòu)造實(shí)際系統(tǒng)的可靠性、簡潔性和實(shí)驗(yàn)操作的方便性,采用廣州天嵌計(jì)算機(jī)科技有限公司生產(chǎn)的TQ2440 Core 2.0核心板作為處理器部件.該板已經(jīng)將嵌入式處理器S3C2440焊接好并以標(biāo)準(zhǔn)排針插口引出了所需的地址線、數(shù)據(jù)線和控制線,而且有較好的上位機(jī)監(jiān)控調(diào)試軟件及人機(jī)界面.該核心板對外只提供了21根內(nèi)存地址線A[20∶0],故可以外接的內(nèi)存空間為2 MB.本實(shí)驗(yàn)將制作一個(gè)1 GB的雙空間存儲器和相應(yīng)的推移鎖存器組,然后在所設(shè)計(jì)的實(shí)驗(yàn)系統(tǒng)上驗(yàn)證內(nèi)存推移理論.

      依據(jù)圖2所示的系統(tǒng)連接原理圖完成實(shí)驗(yàn)板設(shè)計(jì),其中核心板給出的高序號地址線A20~18接入輸出口譯碼器的輸入端,用于尋址推移鎖存器的輸出端;推移鎖存器組輸出端的12根信號線Q11~0與雙空間存儲器的高序號地址線A27~16相連;核心板給出的低序號地址線A17~2與雙空間存儲器的低序號地址線A15~0相連;核心板給出的數(shù)據(jù)總線和雙空間存儲器的數(shù)據(jù)直接互連.

      圖2 系統(tǒng)連接原理圖Fig.2 Schematic diagram of the system connection

      采用Altium Designer軟件設(shè)計(jì)本實(shí)驗(yàn)的電路板.在電路板上焊裝各種元件和芯片后,組裝雙空間存儲器以及TQ2440 Core 2.0核心板,構(gòu)成預(yù)期的內(nèi)存推移實(shí)驗(yàn)系統(tǒng)(見圖3).

      圖3 內(nèi)存推移實(shí)驗(yàn)系統(tǒng)Fig.3 Experimental system of the pulling memory mapping

      3 實(shí)驗(yàn)操作規(guī)劃

      內(nèi)存推移理論的核心理論如下:①用NVRAM構(gòu)造大容量的雙空間存儲器;②構(gòu)造推移鎖存器組;③處理器透過映射窗機(jī)制隨機(jī)訪問窗壁的字單元;④用推移指令在雙空間存儲器字空間上移動窗框.由于雙空間存儲器和推移鎖存器組構(gòu)建在實(shí)驗(yàn)板上,其正確性將通過驗(yàn)證核心理論③和④中的兩項(xiàng)技術(shù)來證實(shí).因此,本實(shí)驗(yàn)在操作方面的重點(diǎn)內(nèi)容是這兩項(xiàng)技術(shù)的實(shí)施.

      3.1 實(shí)驗(yàn)準(zhǔn)備

      實(shí)驗(yàn)準(zhǔn)備主要包括兩方面的工作.

      (1)編寫目標(biāo)程序.通過ARM Developer Suite v1.2平臺編寫本實(shí)驗(yàn)需要的目標(biāo)程序,其中包括嵌入式系統(tǒng)的基本設(shè)置以及用于驗(yàn)證內(nèi)存推移理論的操作.用推移指令對推移鎖存器組中的每個(gè)推移鎖存器進(jìn)行賦值,由S3C2440透過映射窗隨機(jī)訪問雙空間存儲器字空間對應(yīng)窗壁上的字單元,修改推移鎖存器的值,完成在雙空間存儲器字空間上推移窗框.用C語言編寫目標(biāo)程序后,編譯鏈接將其轉(zhuǎn)換成bin文件,并等待燒寫到指定位置.

      (2)搭建實(shí)驗(yàn)平臺.實(shí)驗(yàn)系統(tǒng)的主要軟件和硬件包括SuperVivi-USB-Transfer-Tool、PC機(jī)、TQ2440 Core 2.0核心板、雙空間存儲器、推移鎖存器組以及實(shí)驗(yàn)板.開始實(shí)驗(yàn)前連接好實(shí)驗(yàn)板與PC機(jī)上的串口和USB口,其中串口用于SuperVivi-USB-Transfer-Tool與S3C2440上的軟件通信,PC機(jī)通過USB口向?qū)嶒?yàn)板上的S3C2440處理器燒寫目標(biāo)程序.

      將以上環(huán)節(jié)準(zhǔn)備完畢,確保無誤之后,通電等待實(shí)驗(yàn).

      實(shí)驗(yàn)預(yù)期結(jié)果:從SuperVivi-USB-Transfer-Tool的交互界面上得出TQ2440 Core2.0核心板連接成功,USB通行工作正常,串口工作正常;在所給出的命令中,選擇Download Program(uCOS-Ⅱor TQ2440Test)to SDRAM and Run it命令燒寫目標(biāo)文件BispaceSimulation.bin到同步動態(tài)隨機(jī)存儲器(synchronous dynamic random access memory,SDRAM)中運(yùn)行.

      3.2 驗(yàn)證推移指令的正確性

      由于本實(shí)驗(yàn)無法直接查看各個(gè)推移鎖存器中保持的數(shù)據(jù),因此用邏輯分析儀對推移鎖存器組的輸出信號進(jìn)行采集和分析,以此來確定被選通推移鎖存器所保持的數(shù)據(jù).

      實(shí)驗(yàn)操作規(guī)劃:待目標(biāo)文件BispaceSimulation.bin燒寫完畢后,目標(biāo)程序會自動運(yùn)行;目標(biāo)程序首先執(zhí)行嵌入式系統(tǒng)的基本設(shè)置,然后執(zhí)行推移指令,實(shí)現(xiàn)對推移鎖存器組中每個(gè)推移鎖存器賦初值;用邏輯分析儀對推移鎖存器組的輸出信號進(jìn)行采樣,以判斷各個(gè)推移鎖存器保存的數(shù)值是否正確.

      具體操作如下:①給推移鎖存器寫入一個(gè)初始值,選擇一個(gè)選通該推移鎖存器的訪存地址進(jìn)行訪問,記錄該推移鎖存器給出的數(shù)值;②通過推移指令給該推移鎖存器賦新值;③再次對上述訪存地址進(jìn)行訪問,記錄該推移鎖存器給出的新數(shù)值;④查看邏輯分析儀中記錄的數(shù)值,判斷推移鎖存器所保存的數(shù)值是否正確.以上操作重復(fù)多次.

      以對推移鎖存器1的實(shí)驗(yàn)為例,說明操作過程如下:

      volatile unsigned int*ip=(volatile unsigned int*)(0x0803ffe4)(選中推移鎖存器組中的推移鎖存器1的寫入端地址);

      *ip=0x3f(向推移鎖存器1寫入初始值3fH);

      unsigned int x=*(unsigned int*)(0x08040020)(訪問1號窗框,測得推移鎖存器給出的數(shù)值);

      *ip=0x4aa(向推移鎖存器1賦新值4aaH);

      unsigned int x=*(unsigned int*)(0x08040020)(再次訪問1號窗框,測得推移鎖存器給出的新數(shù)值).

      實(shí)驗(yàn)預(yù)期結(jié)果:邏輯分析儀第一次應(yīng)測得推移鎖存器的輸出值為3fH,第二次為4aaH.

      3.3 透過映射窗隨機(jī)訪問窗壁的字單元

      實(shí)驗(yàn)操作規(guī)劃:初始化推移鎖存器組,給出對任意訪存地址的讀/寫命令,考察該命令的執(zhí)行結(jié)果.

      以訪問08040020H地址為例,說明此項(xiàng)實(shí)驗(yàn)的操作過程如下:①執(zhí)行推移指令*(unsigned int*)(0x0803ffe4)=0x400,將推移鎖存器1的值設(shè)定為400H,然后S3C2440處理器給出訪存地址08040020H,于是選通1號窗框,則將映射窗移動到雙空間存儲器的1 024號窗壁,透過映射窗內(nèi)偏移地址20H,讀出對應(yīng)存儲單元的內(nèi)容,通過串口輸出到PC,在SuperVivi-USBTransfer-Tool的交互界面上顯示,截圖保留實(shí)驗(yàn)結(jié)果;②對1 024號窗壁內(nèi)的對應(yīng)存儲單元寫入數(shù)值1234 4321H,本實(shí)驗(yàn)系統(tǒng)只采用32位數(shù)據(jù)格式,且S3C2440處理器必須給出從0804 0020H開始的地址來訪問雙空間存儲器的連續(xù)4個(gè)字節(jié)(原因請參見2.4節(jié));③從1 024號窗壁內(nèi)的對應(yīng)存儲單元讀出更新后的數(shù)據(jù),截圖保留實(shí)驗(yàn)結(jié)果;④比較第①,③步的實(shí)驗(yàn)結(jié)果,判斷給出的讀/寫命令是否被正確執(zhí)行.

      實(shí)驗(yàn)預(yù)期結(jié)果:第①步,應(yīng)得出1 024號窗壁內(nèi)的對應(yīng)存儲單元上的數(shù)據(jù)ffffffffH;第②,③步,應(yīng)得出S3C2440處理器能夠?qū)?shù)據(jù)1234 4321H寫入1 024號窗壁內(nèi)對應(yīng)存儲單元,該窗壁的其他存儲單元保持NOR Flash芯片擦除后的數(shù)據(jù)ffH.

      3.4 用推移指令在雙空間存儲器字空間上完成窗框推移

      以訪問08040020H地址為例,說明此項(xiàng)實(shí)驗(yàn)的操作過程如下:①通過推移指令*(unsigned int*)(0x0803ffe4)=0x600,將推移鎖存器1的值設(shè)定為600H,即將1號窗框推移到雙空間存儲器的1 536號窗壁,并對該單元寫入數(shù)值1122 3344H;②調(diào)用串口輸出函數(shù)Uart Print(“0x%08x”,*(unsigned int*)(0x08040020)),讀出該訪存地址的數(shù)值,在SuperVivi-USBTransfer-Tool的交互界面上顯示,截圖保留實(shí)驗(yàn)結(jié)果;③用推移指令*(unsigned int*)(0x0803ffe4)=0x400,將推移鎖存器1的值重新設(shè)定為400H;④重復(fù)第②步,此時(shí)映射窗在雙空間存儲器的1 024號窗壁,偏移地址為20H的存儲單元內(nèi)容應(yīng)為1234 4321H(參見3.3節(jié));⑤再次用推移指令*(unsigned int*)(0x0803ffe4)=0x600,將推移鎖存器1的值重新設(shè)定為600H;⑥重復(fù)第②步;⑦比較第②,④,⑥步中3次讀取到的同一訪存地址0804 0020H的內(nèi)容,判斷第①,③,⑤步的推移指令是否都將1號窗框推移到了正確的窗壁.

      實(shí)驗(yàn)預(yù)期結(jié)果:通過3次訪問同一訪存地址為0804 0020H的存儲單元,應(yīng)得到3個(gè)不同數(shù)據(jù),第一次為1122 3344H,第二次為1234 4321H,第三次為1122 3344H.

      3.5 不可閉窗的驗(yàn)證

      實(shí)驗(yàn)操作規(guī)劃:通過修改推移鎖存器0的操作驗(yàn)證不可閉窗的存在.

      操作過程如下:①首先向推移鎖存器0寫入fffH,斷開推移鎖存器0的寫入控制端,使其接入低電平,完成設(shè)定4 095號窗壁為不可閉窗和持續(xù)占有0號窗框的操作;②訪問雙空間存儲器4 095號窗壁,訪問到的數(shù)據(jù)內(nèi)容在SuperVivi-USB-Transfer-Tool的交互界面上顯示,截圖保留實(shí)驗(yàn)結(jié)果;③再次向推移鎖存器0寫入400H,將0號窗框從4 095號窗壁推移到1 024號窗壁;④重復(fù)第②步;⑤比較第②,④步得到的數(shù)據(jù)結(jié)果,判斷第③步推移指令是否將0號窗框推移到其他窗壁上,驗(yàn)證不可閉窗是否存在.

      實(shí)驗(yàn)預(yù)期結(jié)果:通過第②,④步兩次訪問到的內(nèi)容應(yīng)相同,都是4 095號窗壁上的數(shù)據(jù),表示推移指令對不可閉窗無效,不可閉窗上的窗框永久存在,不能移走.

      3.6 映射窗推移技術(shù)的驗(yàn)證

      實(shí)驗(yàn)操作規(guī)劃:改變處理器訪存地址的高位,驗(yàn)證映射窗是否得到推移.3.3和3.5節(jié)中分別用到了1號窗框和0號窗框,在完成驗(yàn)證的過程中,多次改變了處理器給出的訪存地址高位,即已經(jīng)多次把映射窗從一個(gè)窗框移到另一個(gè)窗框,因此綜合分析3.3和3.5節(jié)的實(shí)驗(yàn)過程和記錄,即可對映射窗推移技術(shù)進(jìn)行驗(yàn)證.

      操作過程如下:①得到3.3和3.5節(jié)的驗(yàn)證結(jié)果;②分析3.3和3.5節(jié)的驗(yàn)證結(jié)果,判斷處理器訪存地址高位的改變是否對映射窗進(jìn)行了推移.

      實(shí)驗(yàn)預(yù)期結(jié)果:完成3.3和3.5節(jié)驗(yàn)證實(shí)驗(yàn),驗(yàn)證映射窗推移技術(shù).

      4 實(shí)驗(yàn)過程及結(jié)果分析

      4.1 實(shí)驗(yàn)準(zhǔn)備

      按照實(shí)驗(yàn)準(zhǔn)備操作搭建實(shí)驗(yàn)平臺.TQ2440 Core 2.0核心板從NOR Flash芯片模式中啟動,通電后,實(shí)驗(yàn)結(jié)果和預(yù)期結(jié)果一致.圖4是SuperVivi-USB-Transfer-Tool的交互界面顯示結(jié)果.

      圖4 SuperVivi-USB-Transfer-Tool的交互界面Fig.4 Interactive interface of Super Vivi-USB-Transfer-Tool

      4.2 驗(yàn)證推移指令的正確性

      通過實(shí)驗(yàn)測得推移鎖存器1的初始值為3fH(見圖5).在執(zhí)行推移指令后的訪存中,測得的賦予推移鎖存器的新值為4aaH(見圖6).這說明通過推移指令已將數(shù)據(jù)4aaH正確寫入了推移鎖存器1中,推移指令的正確性得以驗(yàn)證.

      圖5 測得初始值3fHFig.5 Measured initial value 3fH

      圖6 測得賦予推移鎖存器的新值4aaHFig.6 Measured initial values 4aaH given by the latch

      4.3 透過映射窗隨機(jī)訪問窗壁的字單元

      從圖7可以看出,S3C2440處理器能正確訪問1 024號窗壁上的數(shù)據(jù).從圖8可以看出,S3C2440處理器成功修改了1 024號窗壁上偏移地址為20H存儲單元上的數(shù)據(jù),證明了S3C2440處理器能夠透過映射窗隨機(jī)訪問窗壁的正確字單元.

      圖7 對1 024號窗壁上內(nèi)容的訪問Fig.7 Access to the content of 1 024th window entity

      圖8 訪問修改后的單元Fig.8 Access to the modifi ed unit

      4.4 用推移指令在雙空間存儲器字空間上完成窗框推移

      從圖9可以看出,S3C2440處理器成功訪問到了1 536號窗壁,并成功改寫偏移地址為20H存儲單元上的數(shù)據(jù)為1122 3344H.從圖10可以看出,通過推移指令實(shí)現(xiàn)了窗框推移操作,成功將S3C2440處理器引導(dǎo)到對1 024號窗壁的訪問,并訪問到3.3節(jié)中修改過的偏移地址為20H存儲單元上的數(shù)據(jù)1234 4321H.從圖11可以看出,再次通過推移指令實(shí)現(xiàn)了窗框推移操作,成功將S3C2440處理器又引導(dǎo)到1 536號窗壁,訪問到剛剛修改過的偏移地址為20H存儲單元上的數(shù)據(jù)1122 3344H.整個(gè)實(shí)驗(yàn)過程中兩次用到推移指令,成功完成窗框推移操作.

      圖9 第一次訪問Fig.9 First access

      圖10 第二次訪問Fig.10 Second access

      圖11 第三次訪問Fig.11 Third access

      4.5 不可閉窗的驗(yàn)證

      從圖12可以看出,S3C2440處理器能正常訪問4 095號窗壁.從圖13可以看出,執(zhí)行推移指令后無法實(shí)現(xiàn)窗框推移,不能將S3C2440處理器引導(dǎo)到1 024號窗壁,而是依舊停留在4 095號窗壁,說明4 095號窗壁為不可閉窗,持續(xù)占有0號窗框,不能被移動.

      圖12 訪問0號窗壁上的數(shù)據(jù)Fig.12 Access to the data of the 0th window entity

      圖13 執(zhí)行推移指令后的訪問Fig.13 Access after pushing command

      4.6 映射窗推移技術(shù)的驗(yàn)證

      實(shí)驗(yàn)結(jié)果和預(yù)期一致,通過改變處理器訪存地址的高位,成功驗(yàn)證了映射窗推移技術(shù).對上述實(shí)驗(yàn)重復(fù)多次,每次給出不同的參數(shù),實(shí)驗(yàn)結(jié)果均達(dá)到實(shí)驗(yàn)?zāi)康?成功驗(yàn)證了推移指令的正確性.S3C2440處理器能夠隨機(jī)訪問雙空間存儲器字空間的存儲單元,且用推移指令在雙空間存儲器的字空間上能正確移動窗框.這充分證明了內(nèi)存推移理論和技術(shù)的核心內(nèi)容的正確性.

      5 結(jié)束語

      本研究成功完成了基于TQ2440 Core 2.0核心板的內(nèi)存推移實(shí)驗(yàn),證實(shí)了內(nèi)存空間在雙空間存儲器上推移理論和技術(shù)的正確性.在本實(shí)驗(yàn)中,利用TQ2440 Core 2.0提供的21根地址線A[20∶0]構(gòu)成系統(tǒng)的2 MB內(nèi)存空間,通過內(nèi)存推移理論將該內(nèi)存空間自動映射到1 GB的雙空間存儲器的任意一個(gè)局部范圍,并用推移指令將該局部范圍在整個(gè)雙空間存儲器上進(jìn)行移動,從而使核心板對2 MB內(nèi)存空間的隨機(jī)訪問自動落實(shí)為對1 GB雙空間存儲器指定位置的隨機(jī)訪問.

      本實(shí)驗(yàn)的成功為內(nèi)存空間推移理論奠定了可靠的實(shí)物基礎(chǔ),解決了雙空間存儲器在電子計(jì)算機(jī)系統(tǒng)的應(yīng)用過程中,受到CPU地址線寬度限制的內(nèi)存空間與雙空間存儲器巨大隨機(jī)訪問字空間的對接問題,奠定了構(gòu)造雙空間存儲器和實(shí)施內(nèi)存推移理論的實(shí)踐基礎(chǔ).相信在不久的將來,完全可以實(shí)現(xiàn)基于雙空間存儲器的新型電子計(jì)算機(jī),使得CPU能夠直接隨機(jī)訪問到更大的非易失存儲空間,從而使內(nèi)存和外存之間的數(shù)據(jù)復(fù)制問題不復(fù)存在.

      致謝:感謝徐凌宇教授對本工作的大力支持!

      猜你喜歡
      存器窗框存儲器
      低面積與低延遲開銷的三節(jié)點(diǎn)翻轉(zhuǎn)容忍鎖存器設(shè)計(jì)
      一種低成本的四節(jié)點(diǎn)翻轉(zhuǎn)自恢復(fù)鎖存器設(shè)計(jì)
      靜態(tài)隨機(jī)存儲器在軌自檢算法
      參考答案
      快樂語文(2020年35期)2021-01-06 01:44:26
      一種低功耗的容軟錯(cuò)誤鎖存器設(shè)計(jì)
      一種可排水的外開窗
      存儲器——安格爾(墨西哥)▲
      Grain型級聯(lián)反饋移存器的非奇異性判定
      基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計(jì)
      土默特右旗| 稷山县| 永宁县| 鹤山市| 襄樊市| 榆中县| 朝阳市| 吉首市| 乳源| 许昌县| 固镇县| 轮台县| 葫芦岛市| 宣化县| 建瓯市| 铅山县| 滁州市| 佳木斯市| 太湖县| 冀州市| 芒康县| 陆川县| 舞阳县| 革吉县| 罗定市| 嘉禾县| 基隆市| 天门市| 余江县| 西乡县| 邹平县| 大安市| 巧家县| 开化县| 壤塘县| 巫溪县| 灵台县| 保定市| 洛阳市| 满城县| 无为县|