當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]1988年,Jürg Gutknecht 和我一起完成并出版了Oberon 編程語言[1,2],其為我職業(yè)生涯早期開發(fā)的另外兩種編程語言Pascal和Modula-2 的后續(xù)版本。與Modula-2 相比,我們

1988年,Jürg Gutknecht 和我一起完成并出版了Oberon 編程語言[1,2],其為我職業(yè)生涯早期開發(fā)的另外兩種編程語言Pascal和Modula-2 的后續(xù)版本。與Modula-2 相比,我們最初設(shè)計(jì)Oberon編程語言力求更加精簡(jiǎn)和高效,以便能夠更好地幫助教學(xué)人員為計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生教授系統(tǒng)編程。我們?cè)俳釉賱?lì),于1990 年針對(duì)可采用windows系統(tǒng)和具有字處理能力的工作站開發(fā)了Oberon 操作系統(tǒng)(OS),以此作為工作站的現(xiàn)代實(shí)現(xiàn)方式。接著,我們出版了一本書,名為《Project Oberon》,詳細(xì)講解了Oberon 編譯器以及與之同名的操作系統(tǒng)。此外,書中還包括詳細(xì)的指令和源代碼。

幾年前,我的朋友Paul Reed 建議我重新修訂并再次出版這本書,不僅因?yàn)檫@本書對(duì)系統(tǒng)設(shè)計(jì)教學(xué)具有重要價(jià)值,同時(shí)還因?yàn)檫@本書可以作為良好的切入點(diǎn),幫助那些想要成為創(chuàng)新者的人們從零基礎(chǔ)構(gòu)建可靠的系統(tǒng)。

然而,我當(dāng)時(shí)實(shí)際上是遇到了很大的困難。我最初開發(fā)的編譯器是將已基本消失了的處理器作為目標(biāo)。因此,我的解決辦法就是為現(xiàn)代處理器重新編寫編譯器。但在做了不少研究之后,我無法找到一款能夠在清晰度、規(guī)律性和簡(jiǎn)潔性上符合我標(biāo)準(zhǔn)的處理器。因此,我自己設(shè)計(jì)了這款編譯器。而我之所以能夠?qū)⒃撓敕ǜ吨T實(shí)現(xiàn),都是因?yàn)楝F(xiàn)代FPGA 能夠幫助我設(shè)計(jì)硬件以及系統(tǒng)軟件。更重要的是,選擇賽靈思FPGA 能幫助我更新系統(tǒng),同時(shí)讓設(shè)計(jì)盡可能接近自1990 年以來的原始版本。

實(shí)現(xiàn)在低成本Digilent Spartan®-3開發(fā)板上的新型處理器RISC 負(fù)責(zé)托管1MB 靜態(tài)RAM (SR

AM) 內(nèi)存。我唯一添加的系統(tǒng)硬件就是一個(gè)鼠標(biāo)接口和一個(gè)用來替換舊系統(tǒng)中硬盤驅(qū)動(dòng)器的SD 卡。

這本書和面向整個(gè)系統(tǒng)的源代碼可在projectoberon.com[3,4,5] 中查閱,也可在該網(wǎng)站上名為 S3RISCinstall.zip. 的單個(gè)文件中進(jìn)行查閱。該文件包含指令、SD 卡文件系統(tǒng)圖像和FPGA 配置比特文件(對(duì)于Spartan-3開發(fā)板的 Platform Flash,此為PROM文件形式),以及SD 卡/ 鼠標(biāo)接口硬件的構(gòu)造詳圖。

RISC處理器

該處理器由算術(shù)邏輯單元、由16 個(gè)32 位寄存器組成的陣列和帶指令寄存器、IR 及程序計(jì)數(shù)器PC 的控制單元組成。Verilog 模塊RISC5 就是該處理器的典型代表。

該處理器具有20 種指令:4 種用于移動(dòng)、偏移和旋轉(zhuǎn);4 種用于邏輯運(yùn)算;4 種用于整數(shù)運(yùn)算;4 種用于浮點(diǎn)運(yùn)算;2 種用于存儲(chǔ)器訪問;2 種用于分支。

RISC5 通過運(yùn)行環(huán)境RISC5Top導(dǎo)入。該運(yùn)行環(huán)境包括到各種(內(nèi)存映射)器件和SRAM(256M×32 位)的接口。整個(gè)系統(tǒng)(圖1)包括以下Verilog 模塊(見行統(tǒng)計(jì)):

我將內(nèi)存映射到黑白VGA 顯示器中,這樣它只占用1024×768×1位/ 像素=98304 字節(jié),基本上占 1MB 可用主內(nèi)存的10%。該SD卡將取代初始系統(tǒng)中80MB 的硬盤驅(qū)動(dòng)器,其可通過能夠接受并序列化字節(jié)或32 位字的標(biāo)準(zhǔn)SPI 接口進(jìn)行存取。鍵盤和鼠標(biāo)通過標(biāo)準(zhǔn)PS-2 串行接口連接。此外,還提供一根串行異步的RS-232 線和一個(gè)通用8 位并行的I/O接口。模塊RISC5Top還帶有一個(gè)每毫秒采用增量式計(jì)數(shù)的計(jì)數(shù)器。

OBERON操作系統(tǒng)

該操作系統(tǒng)軟件由包括內(nèi)存分配器(帶垃圾回收器)的內(nèi)核、文件系統(tǒng)以及引導(dǎo)載入程序、文本系統(tǒng)、瀏覽器系統(tǒng)和文本編輯器組成。

名 為“Oberon”的模塊是中心任務(wù)調(diào)度程序,而“System”是基礎(chǔ)命令模塊。通過點(diǎn)擊顯示器上任何瀏覽器文本“M.P”上的中間按鈕即可觸發(fā)動(dòng)作, 其中P 是模塊M 聲明的程序名。如果M 不存在,則會(huì)自動(dòng)加載。但是,大多數(shù)文本編輯命令是通過簡(jiǎn)單的鼠標(biāo)點(diǎn)擊觸發(fā)的。其中,左邊一欄按鈕用來設(shè)置" 脫字" 符,標(biāo)記文本位置,右邊一欄按鈕用來選擇文本字段(text stretch)。

“Kernel”模塊包括磁盤存儲(chǔ)管理和垃圾回收器。我保證觀察瀏覽器是平鋪的,不重疊。標(biāo)準(zhǔn)布局顯示了多個(gè)瀏覽器的兩條垂直軌跡。只需拖動(dòng)標(biāo)題欄,就可以放大、縮小或移動(dòng)它們。圖2 顯示了在顯示器上運(yùn)行的用戶界面以及Spartan-3 開發(fā)板、鍵盤及鼠標(biāo)。

加載時(shí)系統(tǒng)占用模塊空間112640字節(jié)(21%),占堆(heap) 的16128字節(jié)(3%)。系統(tǒng)包括所以下幾個(gè)模塊(見行統(tǒng)計(jì)),如圖3 所示:

值得注意的是,該系統(tǒng)在加電或重置時(shí),完成初始化僅需兩秒鐘。這包括文件目錄中垃圾回收掃描。

OBERON編譯器

系統(tǒng)自帶的編譯器采用簡(jiǎn)單的自上而下遞歸下降分析法。用戶使用ORP.Compile @ 命令即可激活模塊選定的源文本上的編譯器。 包解析器通過掃描儀輸入各種符號(hào),包括識(shí)別符、數(shù)字和特殊符號(hào)(如BEGIN、END、+等)。該方案已被證明在許多應(yīng)用中有效且均表現(xiàn)不凡。這點(diǎn)在我著的書《編譯器結(jié)構(gòu)》[6,7] 中有詳細(xì)說明。

該包解析器調(diào)用代碼生成程序模塊中的程序。這些程序直接將指令添加在代碼陣列上。如果已知所有分支目的地,向前跳轉(zhuǎn)指令(forwardbranch instructions)在模塊編譯結(jié)束時(shí)則會(huì)提供跳轉(zhuǎn)地址(修正)。

所有可變地址都與基址寄存器關(guān)聯(lián)。這就是用于局部變量(運(yùn)行時(shí)設(shè)置在程序輸入)的R14(堆棧指示器)或用于全局和輸入變量的R13。

基址地址按要求通過地址保存在寄存器R12 內(nèi)的系統(tǒng)全局模塊表載入。R15 用于RISC 架構(gòu)確定的返回地址(鏈接)。因此,R0-R11 可用于表達(dá)式評(píng)估和傳遞過程參數(shù)。

整個(gè)編譯器由4 個(gè)相對(duì)較小的有效模塊組成(見行統(tǒng)計(jì)):

編譯器占用115912 字節(jié)(22%)的模塊空間和17508 字節(jié)(4%)的堆空間(編譯之前)。其源代碼長(zhǎng)約65KB。編譯器自身的編譯在25 MHzRISC 處理器上只需幾秒鐘[8]。

編譯器通常使用值為NIL的指示檢查數(shù)組索引和基準(zhǔn)值。如果違反規(guī)定,這會(huì)造成陷阱。這種技術(shù)具有高度的安全性,防止錯(cuò)誤和崩潰。事實(shí)上,只能通過采用偽模塊SYSTEM中的操作,即PUT 和COPY,才能防礙系統(tǒng)的完整性。這些操作必須局限于接入器件接口的驅(qū)動(dòng)模塊。在輸入列表中,通過SYSTEM 很容易識(shí)別它們。整個(gè)系統(tǒng)采用Oberon 編程,無需使用匯編碼。

我選擇Digilent Spartan-3開發(fā)板是由于其成本低、操作簡(jiǎn)便,這使其適于教育機(jī)構(gòu),以獲得整套課堂教學(xué)套件。一個(gè)重大優(yōu)勢(shì)就是該開發(fā)板上有靜態(tài)RAM,使得接口連接非常簡(jiǎn)單直觀(甚至用于字節(jié)選擇)。遺憾的是,所有新開發(fā)板均采用動(dòng)態(tài)RAM,雖然存儲(chǔ)空間更大,但接口連接復(fù)雜得多,因此刷新和初始化(校準(zhǔn))需要電路。這一電路與帶靜態(tài)RAM的整個(gè)處理器一樣復(fù)雜。即使控制器以單片式提供,這有悖于我們的開放檢查原則。

最后的想法

40多年前,C.A.R. Hoare 說,在科學(xué)技術(shù)的所有分支學(xué)科中,學(xué)生在被要求用實(shí)驗(yàn)嘗試自己的想法之前,容易受到許多示范性設(shè)計(jì)實(shí)例的影響。編程和軟件設(shè)計(jì)與這種明智模式形成了鮮明對(duì)比。這里,在閱讀任何實(shí)例之前,要求學(xué)生從一開始就編寫程序。

這種可怕事實(shí)的原因就是:幾乎不存在大小合適的示范實(shí)例。因此,我決定稍微修正這種情形,我在1975年編寫了《算法與數(shù)據(jù)結(jié)構(gòu)》一書。隨后(與J. Gut-knecht)負(fù)責(zé)操作系統(tǒng)教學(xué)任務(wù),我設(shè)計(jì)了Oberon 系統(tǒng)(1986-88)。

此后,編程教學(xué)并沒有明顯提高,而系統(tǒng)的規(guī)模和復(fù)雜性顯著增加。雖然開源的努力頗受歡迎,但它并沒有真正改變這種形勢(shì),因?yàn)榇蠖鄶?shù)程序已經(jīng)建成“運(yùn)行”,但卻沒有真正投入使用。

我繼續(xù)大膽提議,應(yīng)重新設(shè)計(jì)所有程序,不光是計(jì)算機(jī),還有讀取方式。這些程序應(yīng)是可發(fā)行的。即便這種方法正確而有效,但這是一項(xiàng)比創(chuàng)建可執(zhí)行程序更為艱難的任務(wù)。這意味著,沒有任何部分必須用匯編碼指定。

忽略在這種“人為因素”的結(jié)果就是,在許多地方,新的應(yīng)用沒有得到精心設(shè)計(jì),而是通過消除程序中錯(cuò)誤來實(shí)現(xiàn),其結(jié)果有時(shí)是令人擔(dān)憂的。要做到“易懂”的關(guān)鍵就是堅(jiān)持簡(jiǎn)單性和規(guī)律性,放棄不必要的修飾,避免花里胡哨,正確區(qū)分傳統(tǒng)與便捷。

該系統(tǒng)所占空間小,是小資源實(shí)現(xiàn)大作為的見證。雖然Oberon 系統(tǒng)包含一個(gè)文件系統(tǒng)、文本編輯器和瀏覽器(Windows)管理程序,但相比多數(shù)現(xiàn)代操作系統(tǒng)而言,其占用的空間少得可憐。意外的是它僅僅依靠一些簡(jiǎn)單規(guī)則,因此便于學(xué)習(xí)如何使用。

最后,這種簡(jiǎn)單的系統(tǒng)的另一大優(yōu)勢(shì)就是,用戶可以在該基礎(chǔ)系統(tǒng)上安全構(gòu)建所需程序,而不必?fù)?dān)心是否存在未知特征與功能,如后門程式(back door)。從系統(tǒng)完整性易受到攻擊的角度看,這是一個(gè)基本屬性,是關(guān)鍵安全型應(yīng)用不可或缺的。值得注意的是,我們的系統(tǒng)硬件沒有這種隱藏元件。畢竟,在如此之大而又沒人能夠完全了解的基礎(chǔ)上構(gòu)建的任何系統(tǒng)也不能予以保證。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉