PC級電腦古董零件:IBM PC用68020 CPU卡 -- Definicon DSI-020
發表於2013.11.20 12:35

喜歡這篇文章嗎?

 

PC級電腦古董零件:IBM PC用68020 CPU卡 -- Definicon DSI-020

 


冼鏡光
November 20, 2013上線

 


有天在地下室書庫和雜物堆裡頭找一本老書時,無意中看到一個長長的、上頭標了PC界面卡的盒子,好奇心驅使就順手把它帶到書房研究研究。為什麼會有好奇心?因為盒子的長度是舊型、落伍十幾二十年的PC/AT那種很長的16-bit ISA卡,而不是今天常見的短卡,這表示該界面卡是PC零件中的「古董」或「元老」級硬體,在1980年代末起就開始絶種。為什麼手上會有這個玩意兒?IBM AT是我在台灣時用的機種,出國後就改用Pentium 486了,所以這個玩意兒根本不應該出現在美國家中。打開盒子一看就恍然大悟,我已經很多年沒見過它了。下面是這張卡的模樣,玩過老PC的朋友認識嗎?我猜想認得它的台灣玩家可能鳳毛麟角,因為它的產量不多、很少見。這張卡勾起了出國唸書前的一段回憶,或許就是這段美好回憶,才把它飄洋過海帶在身邊。

 

 

出國前常常需要用到一個叫做TRANSIT、不大也絶不小的程式,它是用Fortran 77寫的(那時Fortran 90還沒出現),原先是在IBM的大機器上作業,後來把它弄到迷你電腦上,然而因為Fortran編譯程式的效率還是IBM的Fortran H好得多,所以總是愛用大機器。PC興起後,為了方便省錢也把它修改成MS-DOS版,但是1980年代PC 的Fortran編譯程式實在不太行,Microsoft的更差(Lahey Fortran比較好),在PC AT上執行真的是慢,裝了80286加速卡和80287都還是不夠快。為了省時間,就在國外的雜誌上找更快的加速卡。有一天收到厚厚的一大疊資料,本來以為只是普通廣告想隨手就丟掉,不過在好奇心驅使下還是打開來瞄幾眼。不看還好,一看就像是目前的流行話:中毒了,而且毒性奇烈無比,這一堆資料在1980年代中葉簡直是PC玩家的夢想。

 

裡頭有些什麼資料?除了一些高速8087和80287甚至於Weitek浮點處理單元的加速卡之外,就是一堆Motorola 68020和National Semiconductor NS32032界面卡的資訊。IBM選用Intel 8088的CPU真正原由不得而知,但沒有使用Motorola 68000(對我來說)似乎有點失準,使PC進入32-bit的世界晚了好多年。到了1980年代中葉,Intel進入80286時Motorola則是68020,工作站就在那個時期興起,用的差不多都是68020系列(還有NS32032)而不是80286(各位應該知道Apple Mac一開始就用68000),所以工作或研究上PC AT用不順時就真想弄台Sun或是Apollo Domain工作站來玩玩。但這些機型價格奇高,不屬於個人玩家的領域,所以看到68020界面卡資料(沒有價格)實在興奮,因為這相當於在PC AT裡頭加裝一個工作站等級的CPU,雖然OS不可能是Unix,但執行運算的速度會快不少。

 

看到這些細節後馬上向生產該界面卡的Definicon Systems公司詢價並且要求進一步的資訊。很快就有了回音,在美元和新台幣比值是1:40或更高的時代,硬體索價1000美元不能算低,但和IBM AT/370(在IBM PC/AT上執行VM/370和CMS)三片界面卡一套的幾千美元比起來算是低了不少。和娘子商量好久、並且權衡輕重後,決定買一片回來用。不但如此,還連帶買了C和Fortran兩個編譯程式。

 

在1987年初收到這套軟硬體,裡頭有Definicon Systems公司的DSI-020 68020界面卡,配上Silicon Valley Software(簡稱SVS)公司為Unix發展的C和Fortran編輯程式。手上這張是Definicon DSI-20,只有1mb記憶體,Motorola 68020 CPU和Motorola 68881 FPU都定在12.5mhz,以今天的標準來看並不快,不過當時的PC/AT只有6mhz或8mhz!另外,我的這片DSI-020上沒有Motorola 68851 PMMU記憶體管理單元(見上界面卡的空槽),因為我用不著。在PC/AT上安裝沒多大困難,安裝好就測試幾個C和Fortran的小程式,一切順利。接着,把前面提到的TRANSIT程式修改成標準Fortran 77版(這花了點時間),第一次用正式資料測試時實在驚人,速度比在6mhz的PC/AT上快了近三倍、有時還更快。這一來,不少公事就都搬回家、幾個批次檔就做完了,又快又順利又好。或許您會說,做公事為什麼不讓公家買?這個嘛,你在非私人機構待過就知道了,不用我多說。這張卡不但幫我做公事,更重要的是幫我克服了許多研究中不容易做到的障礙,因為我可以不必再用IBM的大型機器、也不再受限於PC/AT,手上只要有比較標準的C和Fortran的原始程式就可以搬回家做。當然記憶體不能超過1mb,不過在那段日子中1mb的限制不是個大問題,因為可以用overlay的技術克服(雖然執行速度會變慢)。

 


硬體部分

 

下面第一張照片是卡上頭的Motorola 68020 CPU、第二張是68881 FPU:

 

 

下面這張照片的左上角藍色部位是給68882 PMMU用的槽,目前沒有插入晶片,照片中的晶片是68020。我個人並不使用68882,而且購買時也沒有加68882的選項。我猜想,Definicon Systems公司終究沒有加上68882,因為它沒有對應的軟體支援(除非自己開發)。

 

 

界面卡左側是記憶體,照片中是四排256K RAM,總共是1mb,這是最典型的配備。記憶體在1980年代很貴,裝了1mb可以算是不錯了,但這張卡在設計時似乎沒有讓使用人自行擴充的考量,所以就是1mb用到底。當時看過雜誌上有人試過在卡上外掛記憶體晶片的做法,但我沒有試過。

 

 

卡後面有該公司檢驗通過的貼紙,上面寫的是1986年12月4日、還帶了簽名:

 

 

最後,卡後方有一個序列埠和一個平行埠:

 

 

這張卡的設計目標是讓PC用戶有和DEC VAX-11/780迷你電腦差不遠的計算能力,而不是提供一台完整的電腦,所以卡上只有計算的部分,輸出輸入和檔案管理全都由MS-DOS負責。另外,界面卡有偵測8-bit的XT和16-bit的AT的能力而自動切換,因此能夠在AT上作業、也可以在XT上作業,這是很方便的設計。


軟體部分

 

雖然Definicon DSI-020使用68020而且也有高階程式語言的編譯程式,但是它的軟體卻不包含(或是不需要)作業系統,因為DSI-020在檔案和輸出輸入部分使用MS-DOS,其它部分就只需要個簡單的控制程式模擬高階語言在程式庫上的需求。Motorola 68020和XT/AT的溝通是用中斷(TRAP #14)達成,參數的傳遞則是用暫存器(register)。

 

DSI-020最基本的軟體很少,只有一個非常簡單、只支援部分68020指令的組譯程式(assembler)而且不能定義資料區域(data section),一個連結程式(linker),一個把68020的程式抄到DSI-020上頭的載入程式(loader),和一個很簡單的偵錯程式。不過用戶可以選購完整的組譯系統、BASIC、C、Fortran和Pascal等編譯程式,有些編譯程式還有不同廠牌產品可供選擇。

 

我買的是Silicon Valley System(SVS)的C和Fortran。記得選SVS産品的理由很簡單,因為只有這家公司同時有這兩者;那時還想多買個Pascal,但盤算過後覺得用處不大,所以放棄。SVS的編譯程式是為Unix設計、而且品質相當高,它的C是當時流行的K&R完整版,而Fortran則有若干擴充的ANSI Fortran 77功能。為了程式的移植性(portability)我從來不用非標準的功能,因為那相當於自找麻煩(換了個系統或編譯程式就可能過不了關)。

 

前面提過DSI-020上頭沒有作業系統,當程式用到系統功能時(通常是透過某些函數),DSI-020編譯程式的程式庫會模擬該功能、或是轉成MS-DOS的功能讓MS-DOS處理。C和Fortran程式庫中,除了輸出輸入就不外乎是記憶體管理和其它雜項(譬如取得系統日期和時間、以及計時等等),輸出輸入和一些雜項可以由MS-DOS處理,其它就得在68020卡上進行,所以整個DSI-020的系統部分並不複雜。

 

DSI-020的手冊上說,因為MS-DOS沒有re-entrant的功能(簡單來說就是絶對的單一使用者系統),所以無法同時執行兩個程式;譬如說,一個在MS-DOS下使用PC的CPU(89286或8088)、另一個在DSI-020上用68020。Definicon Systems公司在手冊裡頭說,如果使用當時Digital Research公司生產的Concurrent DOS就可以做到同時執行若干個程式,其中一個是68020程式。個人試過發現的確如此,不過Concurrent DOS在當時似乎有MS-DOS相容性問題,若干MS-DOS程式無法在Concurrent DOS下正確執行;但若只是執行自己寫的、只用到標準功能的程式時,印象中好像沒什麼問題。總之,個人最常用的還是把裝了DSI-020的IBM AT當成程式發展平台,另一台裝了80286加速卡的AT才是MS/PC-DOS的使用環境。

 


一些測試結果

 

經過快三十年,自己做的測試早就不知道放到何處,而且也沒在Micro隨筆的專欄中發表。不過網上隨處都可以找得到當時其他人做的測試結果,當時知名度最高的BYTE雜誌還用連續兩期登過由Definicon Systems工程師介紹DSI-020的文章,裡頭就有若干測試結果。

 

在1980年代下半之前,最流行的幾個測試程式是Whetstone、LINPACK和Dhrystone。Whetstone是以浮點運算為主、用Fortran(最先是用ALGOL)寫成的程式,它會報告某CPU在某Fortran 編譯程式編譯過的Whetstone程式執行時,每秒可以做多少個單精度和倍精度運算的Whetstone,Whetstone數目愈高的CPU和編譯程式組合就愈快。

 

LINPACK是一個用Gauss消去法解線性聯立方程式的測試程式,重點自然也是浮點運算,它報告的是完成所有計算工作所需的時間,所以時間愈短的CPU和編譯程式組合就愈快。

 

Dhrystone是一些小片段的組合、用來模擬常見的程式結構,不過它只測整數運算而不含浮點運算。和Whetstone一樣,它的結果是每秒有多少個Dhrystone,Dhrystone愈高就表示該CPU和編譯程式組合就愈快。因為當時Digital Equipment(簡稱DEC)的VAX-11/780是相當常見的高效能迷你電腦(Minicomputer),不少Dhrystone的測試報告會轉換成以VAX-11/780為基準的相對數值。因為VAX-11/780的Dhrystone是1757,若某系統測得的Dhrystone數目是x,它相對於VAX-11/780的Dhrystone結果就是x/1757。譬如說,某系統測到的Dhrystone是2000,它相對於VAX-11/780的效率就是1.138 = 2000/1757。這個相對於VAX-11/780的Dhrystone值一般用DMIPS做單位,所以上面的測試結果是1.138 DMIPS,此地DMIPS表示Dhrystone MIPS,而MIPS是Million Instructions Per Second(每秒百萬條指令)的簡稱。用VAX-11/780的一個很重要理由就是它的CPU執行速度是1 MIPS。

 

Whetstone原意是磨刀石,Dhrystone在命名上有些戲謔,用乾(dhry也就是dry)對上Whetstone中的濕(whet也就是wet),如此而已,沒什麼特別的道理。這些程式目前網上不難找到,所以就不列出來了。

 

下面是Whetstone和LINPACK的測試數據。Definicon的DSI-020有兩個版本,手上的68020速度是定在12.5mhz,另一個版本是比較快的16.7mhz。從表中可以看出,VAX-11/780除了倍精度運算比DSI-020的16.7mhz稍慢之外,其它兩項都領先,而DSI-020的12.5mhz版比當時的IBM PC/RT Model 20快了很多。因為12.5mhz大約是16.7mhz的四分之三,所以12.5mhz版的效率也大約是16.7mhz版的四分之三。

 

 

下面是Dhrystone的測試數據。要注意的是,這些數據是網路上收集,同一機型使用不同速度的CPU、作業系統、編譯程式、和編譯與執行的選項都會影饔到執行速度,所以同型機種可能會得到不同的Dhrystone結果,所以表中通常列出能夠找到的最大值。另外,表中是在Dhrystone 1.1下的測試結果,而且Dhrystone只測整數運算。

 

 

表中最慢的是當時的入門機型Apple IIe,它使用1.02mhz的65C02,不論是否使用暫存器的結果都是37,編譯程式是Aztec C II V1.0.5,在當時是Apple上非常好的編譯程式。Apple早期用7.83mhz的Macintosh結果是660(不使用暫存器)和661(使用暫存器);後來用15.67mhz 68020的Macintosh II就提高到2553(不使用暫存器和2870(使用暫存器),效率高了不少。

 

PC方方面,最早期用4.77mhz 8088的PC/XT只有326(不使用暫存器)和347(使用暫存器),作業系統和編譯程式分別是MS-DOS 2.0和Microsoft C 3.01。後來的PC/AT使用6mhz 80286,效率提高到943(不使用暫存器)和925(使用暫存器),作業系統和編譯程式分別是MS-DOS 3.1和Lattice C 3.00h(可能是當時最好的PC的C編譯程式)。後來還有8mhz 80286版的PC/AT,結果又高了些、變成1729(不使用暫存器)和1796(使用暫存器)。Compaq 386是最早一批使用80386的機型之一,它用16mhz 89386,在MS-DIS 3.1和Lattice C 3.00B Large之下的結果也不過是2000(不論是否使用暫存器);要注意的是,當時80286的編譯程式為了適應80286和MS-DOS記憶體結構都有若干編譯模式,此地Large表示程式需要使用很大的記憶體,編譯出來結果的執行時間比較長。不論如何,PC總是不如同級的Macintosh,所以當時有很多人認為IBM應該放棄80286甚至MS-DOS、向68XXX系列和更高階的作業系統靠攏。從這些數據也不難看出,Definicon DSI-020在當時勝過PC級機型甚多,只有Macintosh II可以相比,所以這就是個人選擇DeFinicon DSI-020的主要理由。

 

在1980年代中後期,DEC VAX-11/780無疑是一支獨秀的迷你級電腦,IBM則有類似的中級大機型4331、4341和稍後的4381。表中列出DEC VAX-11/780、IBM 4341-12和IBM 4381-2這三型的Dhrystone結果,毫無疑問地,IBM這兩型迷你大電腦比迷你電腦在整數運算上快很多。

 

為什麼Dhrystone只測整數運算?對科學、工程和需要大量浮點運算的應用而言,Whetstone和LINPACK可以提供相當的參考指標,但是大多數其它的應用使用整數運算的機會卻遠大於浮點運算,所以Dhrystone測整數運算的效能正好填補Whestone和LINPACK的不足。事實上,在個人電腦的早期世代,CPU是沒有浮點運算能力的,浮點運算得靠整數運算用軟體模擬,使用人得花額外的代價購買浮點處理單元(FPU)和相關軟體,才有真正的浮點運箕能力;譬如說,Intel的8086/8088、80286和80386得分別配8087、80287和80387才有浮點運算硬體。所以,對個人電腦而言,整數運算的重要性和效率遠大於浮點運算,因而Dhrystone在當時是一個重要的效率指標。

 


結論

 

這就是對Definicon Systems DSI-020 68020卡的一點回憶。目前已經不再使用這張卡,而且軟體也都不知道丟到何處,要再測試或玩玩什麼都不可能了。寫完這篇文章後它又會回到原來的盒子中供起來,有機會再找出來把玩回憶一番,因為它的速度曾經幫我解決了很多數值計算方面的課題。

 

前面也提到當時想買一組三張的IBM AT/370界面卡,方便在IBM PC/AT上執行VM/370和CMS程式,主要是看在一套叫做ASSIST V模擬IBM SYSTEM 360所有指令的系統,因為可以在沒有IBM CPU之下玩許多直接和硬體打交道以及寫OS的技巧;當時手上有ASSIST V的IBM大機器版,對個人教作業系統這門課幫助很大,所以想到在IBM PC/AT上隨時使用會更方便。但是因為價格太高,而且DSI-020更吸引我而作罷,出國多年後有人願意非常廉價出讓一組AT/370,但那時已經失去興趣,因為一套更完整更具威力叫做Hercules的模擬系統出現、而且不少舊IBM作業系統(譬如DOS/VS、MVS和VM/370)都可以下載並且在Hercules上正常作業,根本不再需要硬體支援。有興趣的朋友不妨下載一套Hercules(見http://www.hercules-390.eu),也順便安裝一兩個IBM的老作業系統玩玩。

 

這篇就到此結束了,往後心血來潮時會再到地下室找些元老級的PC軟硬體出來聊聊。最後,BYTE雜誌介紹DSI-020的兩篇文章是在1986年7月和8月號,網上可以找到影印版(http://www.classiccmp.org/cini/pdf/byte/),下面是BYTE這兩期的照片:

 

 

未經本人同意,請勿轉載轉貼本文任何片段,請尊重智慧財產(著作)權

引用方式:冼鏡光,PC級電腦古董零件:IBM PC用68020 CPU卡-- Definicon DSI-020,DCView.com達人部落格(http://blog.dcview.com/article.php?a=UWxSM1E1VGsDYw%3D%3D

 

│本站文章分類:概念解析
│今日人氣:3 │累計人氣:259015 │回應(2)

喜歡這篇文章嗎?

回應

naoki takeyama  於2013.12.08 23:24  

誤:Appli IIe
正:Apple IIe

版主回應︰ 於 2013.12.09 16:53

謝謝。已經更正。

Philip Ma  於2013.12.20 17:15  

發現一個錯字:每秒 "種" 可以做多少個•••

版主回應︰ 於 2013.12.24 13:42

多謝,已經更正。

  • 驗證碼:請點選國旗重換驗證

    • 53f32a38f288e41bd2ea299d64ebc63e
    • a0b404acd8778d63523db58f5f7b883e
    • a48f067a48bfc00ac1482accbc6a7622


<< 2019-10 >>
12345
6789101112
13141516171819
20212223242526
2728293031

文章列表

  1. 模型 (1)
  2. 航太小語 (1)
  3. 手機配件 (15)
  4. 老鏡叢談:拆老機、玩老鏡 (5)
  5. 老鏡叢談:反射鏡頭(7)
  6. PC級電腦古董零件 (1)
  7. 中文攝影書書評 (2)
  8. 家居瑣記(7) NEW!
  9. SLR到DSLR之路 (2)
  10. 相機短篇 (4)
  11. 鏡頭短篇 (7)
  12. 部落格公告 (4)
  13. 後院紀事 (3)
  14. 急就章--各種器材紀事(24)
  15. 瑣瑣碎碎的話題 (9)
  16. 我寫的書 (4)
  17. Nikon鏡頭筆談 (7)
  18. 寫給新手 (21)
  19. 相機鏡頭 (6)
  20. 姑妄言之集 (3)
  21. 遊記 (8)
  22. 電子計算機(電腦)科學 (4)
  23. 老機雜記 (27)
  24. 攝影思潮回顧 (1)
  25. 數位相機(DC)隨筆 (13)
  26. 大湖燈塔巡禮 (3)
  27. 書!書!書! (11)
  28. 基礎知識 (14)
  29. 閒話SLR (24)
  30. 老鏡叢談 (33)

最新文章發表

  1. 可否請這位先生(或女士)收歛些
  2. 在1984年(蔡英文女士得博士學位)時有沒有右邊切齊的打字機或軟體?
  3. Nikon最早期的望遠鏡頭四兄弟(1964):NIKKOR-Q 400mm 1:4.5 Auto
  4. Nikon的兩個對焦筒:CU-1(1964)和AU-1(1974)
  5. 模型:Messerschmitt KR200 Kabrio微型三輪摩托車

最新回應訊息

  1. Re:还挺不 by HG(9.25)
  2. Re:版主: 請問4片3 by William wei(9.15)
  3. Re:請問bitplay的 by 陳姿(9.11)
  4. Re:古早的鏡頭看起來堅固 by 無可救藥(8.09)
  5. Re:Hi 在用ipho by Fiona(7.19)

人氣指數

  1. 今日人氣指數:16545
  2. 累積人氣指數:207403816