我們這個行業喜歡第一,盡管“第一”并不一定能贏得市場。但有時候第一個進入市場的人也確實會獲勝。那就代表著有時不會。當談到微處理器時,也一直有多路勢力在爭奪第一名的吹噓權。
通常,爭論圍繞著三個競爭者展開:
Intel 4004 微處理器,MCS-4 芯片組的一部分
AiResearch MP944MP944
Four-Phase AL1,微處理器芯片組中的一個芯片
這些都是微處理器。問題是,這些中哪一個是第一個?是第一個什么?第一個微處理器?第一個單片機?什么是微處理器?其實當中設計很多問題。
自 1975 年以來,筆者一直在為微處理器設計系統。自 1978 年以來,筆者也一直在撰寫有關它們的文章。在他看來,微處理器需要:
一個執行算術和邏輯運算的 ALU
一個寄存器組,包括數據寄存器、地址寄存器、控制/狀態寄存器、堆棧寄存器或堆棧指針寄存器和指令寄存器
程序計數器
取指令機制和程序定序器
指令解碼器(可以使用一個或多個微碼級別進行解碼)
一個總線接口
如果所有這六個元素都存在,我稱之為微處理器。如果所有這六個元素都存在于一塊硅上,我稱之為單芯片微處理器。其他人似乎有其他定義,但這些是我的。
爭議就在這里。按照我的定義,Intel 4004、AiResearch MP944 和四相 AL1 都是微處理器。根據我的定義,英特爾 4004 于 1969 年和 1970 年開發,但在 1971 年 11 月才公開發布,是三款符合單芯片微處理器條件的唯一一款。我相信有人會為此與我爭論。但伙計們,請繼續閱讀,務必閱讀整篇文章。
英特爾 MCS-4 的設計非常優雅,是創建嵌入式系統的理想芯片組。它的 4 位方向(orientation)非常適合 Busicom 的預期用途——制作桌面計算器——因為它是為 BCD(二進制編碼的十進制)算術而設計的。英特爾 4004 架構做出的重大改變之一是將 Masatoshi Shima 的計算器設計從面向十進制(所有機械計算器都使用十進制輪進行計算,并且算術算法很好理解)轉變為面向 BCD。這是 Ted Hoff 對原始問題的出色轉變,需要將所有內容都放在一個芯片上。Hoff 的架構展示了對正在解決的問題的深刻數學洞察力。
因此,MCS-4 芯片組非常適合在機器/人機交互區域處理數字的任何機器。這定義了幾乎所有的嵌入式系統。機器不太喜歡 BCD——他們喜歡純二進制數——但人類需要看到十進制數字。BCD 是妥協。如果你愿意,它是一個數字世界語。
HP Loveland在1970 年代開發的,包括 HP 9825 和 9845在內的設備被稱為臺式計算器,。他們有 3-chip, 16-bit、混合處理器,其中 BCD 算法內置在混合芯片的第三個芯片中,即擴展數學芯片。當時,BCD 被廣泛用于高精度的浮點計算。但是如果你想走得快,你需要使用有很多位的二進制數。這就是該行業努力開發 32 位和 64 位微處理器的原因之一。
英特爾做出了許多妥協,將 4004 微處理器的內部結構塞進了 16 針 DIP。也許最大的妥協是 4 位雙向總線,它使用多路復用方案傳輸地址、指令和數據。該總線沒有像后續處理器那樣具有單獨的地址和數據總線。它只有一個帶有同步引腳的 4 位總線,用于指定每個指令周期的開始。
例如,在取指令期間,同步周期將表示指令取回的開始,接下來的三個總線周期將是地址傳輸,以 4 位塊(4-bit chunks.)為單位。然后,ROM 將在接下來的兩個周期內以 4 位塊的形式將 8 位指令放置到總線上。
由于可用引腳數量有限且總線多路復用,Intel 4004 微處理器需要三個總線周期來生成地址,并且需要兩個或更多總線周期來加載 8 位或 16 位指令。地址、指令和數據都必須通過 4 位總線。
數據表現更好。因為它是一個以 BCD 為中心的機器,所以 4 位總線是理想的。然而,與 ROM 和 RAM 進行數據交易的地址仍然需要三個總線周期來進行地址傳輸。結果,整體系統性能受到影響。
英特爾 4004 慢得像molasses,但對于預期用途來說是可以的:電子桌面計算器。它仍然比機電前輩快得多。
這些妥協迫使英特爾創建了一個圍墻花園。當時可用的標準 RAM 和 ROM 具有簡單的并行總線,帶有單獨的地址和數據線。這些設備與 Intel 4004 的總線結構不直接兼容。英特爾 MCS-4 芯片組(分別為 4001、4002 和 4003)中的 RAM、ROM 和 I/O 芯片都需要實現特殊的總線接口邏輯,以駐留在 4004 微處理器的圍墻花園中。
(注:MCS-4 芯片組有作弊碼。4001 ROM 和 4002 RAM 芯片監控總線,識別和解碼 I/O 指令,并執行針對其集成 I/O 端口的指令。因此有輕微的指令解碼分布在三個芯片上,但 4004 微處理器仍然包含了我所有的六個關鍵處理器元素。4004 仍然是世界上第一個單芯片微處理器,無論設計妥協所帶來的缺點。)
所以盡管有圍墻花園,我很高興將英特爾 4004 指定為第一個單芯片微處理器。它在一個芯片上擁有微處理器所需的一切:ALU、寄存器組、程序計數器、指令解碼器、獲取機制、程序定序器和總線接口。這一切都在一塊硅上,這在很大程度上要歸功于 Federico Faggin 的硅魔法。他在這個和隨后的微處理器設計上的才華超越了天才。
AiResearch MP944 則在經過幾年的開發后,最終于 1970 年 6 月完成。它顯然是一款微處理器芯片組,起碼的共同發明人 Ray Holt 是一直這樣稱呼它,他維護著一個很棒的網站,稱為“ The World’s First Microprocessor.”。該組中的六個芯片是乘法器單元、除法器單元、特殊邏輯單元、轉向單元、ROM 和 RAS(RAM)。乘法器和除法器單元是早期的協處理器化身,是Holt設計的眾多創新之一。MP944 的關鍵處理器組件分布在芯片組中的多個芯片上。該系列中的任何一個芯片都不能作為完整的處理器工作。你要證據?閱讀 Ray Holt 從 1971 年開始發表的原始論文,我們會發現直到幾十年后才知道這種微處理器,因為它被用于實施中央空中數據計算機,該計算機控制美國海軍 F-14 Tomcat 擺動翼戰斗機的機翼俯仰。這是一個機密項目,到1998 年才解密。
您必須進行大量挖掘才能了解 1969 年首次出現的Four-Phase AL1的真相。根據現有信息,我對 AL1 的分析是,它被設計為位片(bit/byte slice )。在這種情況下,具有寄存器文件和 ALU 的 8 位切片。這比五年多后出現的 4 位 AMD 2901 復雜得多。
位片是微處理器的一部分。它不能單獨作為微處理器運行。AL1 是用于構建 Four-Phase算機處理器的 12 芯片組的一部分。Four-Phase使用三個 AL1 來形成 24 位 ALU 和寄存器組,但您需要芯片組的其余 IC 來完成處理器。如果沒有其他芯片,AL1 片就不能作為處理器工作,我相信這些芯片包括取指單元、指令寄存器、指令解碼器、中斷控制器和系統總線接口。
也許你會問,不是有一個著名的訴訟演示證明 AL1 確實是一個微處理器嗎?是的,確實有。TI(德州儀器)擁有多項基于其微控制器和微處理器工作的專利。該公司收取使用這些專利的許可費,并向幾家公司提起訴訟,在本案中需要提一下的是戴爾,因為TI 于 1990 年對戴爾提起專利訴訟。
Four-Phase Systems 的創始人之一 Lee Boysel 在訴訟中擔任戴爾的專家證人。他用 AL1 開發了一個物理演示來證明現有技術,并于 1992 年向法庭演示了該系統。Four-Phase 演示使 AL1 芯片看起來和工作起來像一個微處理器,以建立現有技術。
Boysel 演示系統中的 40 針 AL1 芯片通過 40 針帶狀電纜連接到塑料封裝的 RAM、ROM 和 I/O 塊。這是一個屏幕截圖,摘自 Boysel 2016 年題為“為有抱負的企業家創造第一百萬和其他技巧”的演講,該演講是在他的母校密歇根大學的課堂上制作的,其中顯示了一張 Boysel 用于訴訟的演示系統的照片:
Four-Phase 創始人兼專家證人 Lee Boysel 在 TI v Dell 微處理器訴訟中展示的 AL1 Demo 系統照片
這張照片中演示系統的 RAM/ROM 和 I/O 塊在我看來就像早期的任天堂視頻游戲卡帶。它們由灰色塑料制成——不透明的灰色塑料。事實上,真正的 Demo 系統在計算機歷史博物館的檔案中,這個神器上的文件說墨盒殼實際上來自一個超級任天堂的視頻游戲。我認為這些卡帶的不透明度,尤其是 ROM 卡帶,對于這個 Demo 系統的目的來說可能非常重要。
我無法證明,但我猜測 AL1 演示是一個技術魔術技巧 。我不能說這是故意誤導,因為我不知道動機,但在我看來確實很粗略。由 Four-Phase 的創始人之一和 AL1 的發明者 Lee Boysel 出版的題為“法庭演示系統:1969 年 AL1 微處理器”的文件在計算機歷史博物館的收藏中,其中包含演示系統的框圖,其中顯示了 AL1 芯片的連接演示系統的 RAM、ROM 和 I/O 塊。這是圖表:
我從這個框圖和Demo系統的照片中看到了一個經典的魔法裝置。
任何魔術都有兩部分:裝置和表演。魔術師在舞臺上表演魔術,但魔術行業也有一群高薪的幕后人員,他們只是夢想并制造使魔術成為可能的設備。
魔術表演的主要工具之一是視覺誤導:欺騙人們看錯東西,并認為他們看到了一些沒有發生的事情。如果你看到一個標有“ROM”的大貼紙的塑料盒,你自然會認為里面有一個ROM。如果您在單調的灰色盒子旁邊看到帶有閃亮金色引線的白色芯片,則您將注意力集中在閃亮的物體上,而很少注意灰色盒子。這是人性,魔術靠它。
該框圖清楚地顯示了從外部 ROM 檢索的 24 位指令字如何進入標有“AL1 指令寄存器”的塊。存儲在“AL1 指令寄存器”中的指令然后驅動寄存器的輸出引腳,這些引腳直接控制芯片的 ALU 并選擇寄存器文件的源和目標。
這是我在這張圖中沒有看到的:指令解碼器、程序計數器或獲取機制。
從這張圖中,我得出的結論是,標有“AL1指令寄存器”的框實際上是一個微碼寄存器,Demo系統中外掛的ROM實際上是作為一個微碼ROM運行的。這可信嗎?至少有一些四相計算機是微編碼機器嗎?帶著這個問題,谷歌很快找到了答案。是的,四相的 4000 系列和 6000 系列計算機確實是帶有 48 位微碼 ROM 的微碼機器。
這是 Lee Boysel傳記的引述,該傳記出現在密歇根大學的網站上:
“Boysel 在 1960 年代和 1970 年代開發了一些最早的概念并發表了一些關于計算機體系結構的第一篇文章,包括 MOS ROM CPU 微碼控制、RAM 信息的直接視頻顯示和單雙向總線結構——今天微處理器的所有主要部分設計。他還參與了半導體行業第一個 A/D 芯片、第一個靜態和動態 MOS ROM、第一個并行 ALU 和第一個 DRAM 的設計和制造。有些技術是在 Fairchild 完成的,有些是在 Four Phase Systems 完成的。”
Boysel 顯然對微碼了解很多。
這個Demo系統中的程序計數器在哪里?它沒有出現在AL1框圖中,我不認為它在AL1芯片上。我想它一定是在別的地方。在這里,我想說一下,我認為程序計數器必須位于標有“ROM”的灰色塑料盒內。
指令解碼器在哪里?它也不在 AL1 框圖中。我無法證明,但我認為 Boysel 用于為 Demo 系統生成軟件的匯編程序必須直接為 ROM 生成微碼。當位片處理器設計流行時,微碼匯編器曾經更加普遍。那是 1980 年代,就在 Boysel 構建此演示之前。我認為演示的灰色塑料“ROM”盒中的 ROM 包含微代碼,基本上是預解碼的指令。
請不要誤會。使用微碼解碼微處理器指令是完全合法的。許多非常成功的微處理器使用基于微碼的指令解碼器。例如,摩托羅拉 68000 微處理器使用多個微碼級別來解碼機器指令。但是,如果該微代碼存在于芯片外,那么根據我的定義,該芯片就不能是單芯片微處理器。
Ken Shirriff 在其題為“德州儀器 TMX 1795:(幾乎)第一個被遺忘的微處理器”的極其詳盡的博客中證實了我的懷疑。通過仔細閱讀他的網站,我可以看出 Shirriff 顯然是一位經驗豐富的計算機歷史學家和逆向工程芯片方面的專家。給他一張骰子照片,他可以告訴你骰子上有什么。
Shirriff 分析了 TI/Dell 訴訟期間提交的 AL1 芯片顯微照片,并發現了另一個驚喜。框圖中顯示的“AL1 指令寄存器”實際上并不存在于芯片中。寄存器應該駐留在芯片上的只有電線,這進一步證實了 AL1 沒有指令寄存器。這是完全有道理的。根據上面的框圖,進出 AL1 的唯一途徑是通過“AL1 指令寄存器”。這意味著來自 AL1 的 ALU 部分的數據必須通過所謂的指令寄存器傳入和傳出芯片。然而,指令寄存器從來都不是雙向的。電線當然是。我得出的結論是,演示系統中的 ROM 盒直接通過帶狀電纜將微代碼驅動到 ALU 和寄存器文件。
這些分析都沒有削弱Boysel的許多成就。AL1 芯片組無疑提升了最先進的計算技術。Boysel 在他的演講中聲稱四相在其競爭中領先三年。這大概是很準確的。
我強烈建議您觀看 Boysel 2016 年的有趣演示。本演示的最后一部分涉及四相微處理器中使用的 AL1 和相關芯片。Boysel 在他的演講中說,英特爾 4004 無疑是第一個商業微處理器。那是因為 Four-Phase 只在電路板上銷售其處理器芯片,封裝在完整的計算機系統中。處理器本身不出售。Boysel 拒絕向競爭對手出售如此有價值的技術。
“微處理器不是憑空出現的,”Boysel在他的演講中說。他是對的,當然。Boysel 還說,TI 的專家證人在他們發現 AL1 演示系統時折疊了他們的帳篷并且不會作證。
案件結案。
Boysel 是否足夠敏銳以喚起我懷疑的那種宏偉的技術幻覺?他有足夠的動力去做那件事嗎?Lee Boysel 在今年2021 年 4 月 25 日去世。所以我不能直接問他。然而,這里引用了他在舊金山紀事報上的訃告:
“這些年來確保這項技術掌握在他的手中,用他的話來說,'John Q Public' 是 Buff 最引以為豪的,也是他最懷念的。” (他的朋友稱他為“Buff”。)
我建議您觀看視頻,然后自己決定。我知道我如何投票。毫無疑問,Boysel 在微處理器領域幾乎沒有得到應有的贊譽。