穿越時空的愛戀-Z80 CPU的前世今生
它是1976年推出時,與6502 CPU 一起,引發了一系列項目,導致了 80 年代初期的家用計算機革命。同時你能想象在CPU更新迭代速度這么快的時代,直到今天他還在服役,還沒“退休”。
TI-84 Plus CE 直到現在還在生產售賣(截止2020年),網頁地址:https://www.cemetech.net/news/2020/5/950/_/ti-83-premium-ceti-84-plus-ce-asmc-removal-updates
基于Zilog eZ80 (TI-84 Plus CE) TI產品(2020年)
這塊CPU也被廣泛應用于蘋果電腦、街機及世嘉的各種游戲機,這塊CPU就是Zilog Z80 ,讓我們看下這塊可能是最“長命”的CPU的前世今生。
Z80是一個8位的微處理器,是Zilog公司作為啟動公司的第一個產品。Z80 由Federico Faggin于 1974 年底構思,并于 1975 年初由他和他的 11 名員工開發。第一個工作樣品于 1976 年 3 月交付,并于 1976 年 7 月正式投放市場。通過Z80該公司建立了自己的芯片工廠,并在接下來的兩年里發展到了超過一千名員工。
Zilog Z80 是Intel 8080的軟件兼容擴展和增強,與8080一樣,主要針對嵌入式系統。盡管用于嵌入式系統,Z80 還是從 1970 年代到 1980 年代中期成為臺式計算機和家用計算機中使用最廣泛的CPU之一。它在軍事應用、音樂設備如合成器(如Roland Jupiter-8)以及1970 年代末和 80 年代初的投幣式街機游戲(包括吃豆人)中也很常見。
Zilog Z80 CPU(1976年)
Zilog 也將 Z80 授權給了美國的Synertek和Mostek,后者幫助他們進行了初始生產,以及歐洲的第二來源制造商SGS。該設計還被幾家日本、東歐和蘇聯制造商復制。由于像NEC、東芝、夏普和日立這樣的大公司開始制造該設備(或他們自己的 Z80 兼容克隆或設計),讓z80在世界市場上贏得了認可。
近幾十年來,Zilog 重新關注不斷增長的嵌入式系統市場,最新的 Z80 兼容微控制器系列、具有線性16 MB地址范圍的全流水線 24 位 eZ80與更簡單的 Z80 和Z180一起成功推出各自產品。
80 年代的星空
Z80 誕生于物理學家和工程師Federico Faggin,Federico Faggin于 1974 年底離開英特爾,與Ralph Ungermann 一起創立Zilog 。在飛兆半導體(Fairchild Semiconductor International, Inc.是一家位于加利福尼亞州圣何塞的美國半導體公司。成立于 1957 年,作為Fairchild Camera and Instrument 的一個部門,它成為晶體管和集成電路制造領域的先驅。斯倫貝謝于 1979 年收購了該公司,并于 1987 年將其出售給美國國家半導體公司;Fairchild于1997 年再次分拆為獨立公司。
2016 年9 月,Fairchild 被安森美半導體收購。)和后來的英特爾,Faggin 一直致力于基本晶體管和半導體制造技術。他還開發了用于英特爾存儲器和微處理器的基本設計方法,并領導了英特爾 4004、8080和其他幾款 IC 的工作。
志摩正敏(Masatoshi Shima 是日本電子工程師。他參與了微處理器的英特爾4004的研制。1968年,Shima就職于日本Busicom,為專用CPU進行邏輯設計,轉化為三片定制芯片。1969年,他與英特爾的Ted Hoff和Stanley Mazor合作,減少了三芯片Busicom建議進入單芯片架構。1970年,該建議被改造成硅芯片中。后來他于1972年加入英特爾。在那里,他與Faggin合作開發了英特爾8080,于1974年發布。Shima隨后開發了幾款英特爾外圍芯片,其中一些用于IBM PC,如8259 中斷控制器,8255 并口芯片,8253定時器芯片、8257 直接存儲器存取(DMA)芯片和8251 串行通信 USART芯片。
隨后,他加入了Zilog,在那里他與 Faggin 合作開發了Zilog Z80(1976 年)和Z8000(1979 年))也在隨后加入了 Zilog 團隊。
Z80 VS Intel 8080
據設計者介紹,Z80 CPU(及其可選支持和外圍IC)的主要目標是智能終端、高端打印機和高級收銀機等產品以及電信設備、工業機器人和其他類型的自動化產品、設備。
到 1976 年 3 月,Zilog 已為其客戶開發了 Z80 以及隨附的基于匯編器的開發系統,并于 1976 年 7 月正式投放市場。一些 Z80 支持和外圍 IC 此時也在開發中,其中許多是在第二年推出的。
1976 年 5 月的 Zilog Z-80 8 位微處理器廣告
早期的 Z80 由 Synertek 和 Mostek 制造,之后 Zilog 于 1976 年末擁有自己的制造工廠。之所以選擇這些公司,是因為他們可以進行離子注入,以創建Z80 設計用作負載晶體管的耗盡型 MOSFET以應對單個 5 伏電源。
采用耗盡負載nMOS的原始 Zilog Z80微處理器設計的照片。總芯片尺寸為 3545×3350 μm。(這個實際的芯片制造于 1990 年。)
Federico Faggin設計了指令集是與Intel 8080二進制兼容的 ,使得最8080碼,特別是CP / M 操作系統和Intel的PL / M編譯器8080(以及其生成的代碼),將在新的 Z80 CPU 上未經修改地運行。志摩正敏在少數工程師和布局人員的協助下設計了 Z80 CPU 的大部分微架構以及柵極和晶體管級。CEO Federico Faggin 實際上參與了芯片布局工作,還有兩個專門的布局人員。根據Federico Faggin的說法,他每周工作 80 小時(多嗎?),以滿足投資者給的緊迫的日程安排。
CMOS Z80 四方封裝
雖然Z80是兼容8080的,但是Z80 在 8080 基礎上提供了許多改進:
增強型指令集包括:
一個更合乎邏輯、更易于理解和可讀的匯編指令助記符系統
更靈活的 16 位數據移動(加載或 LD)指令,關鍵包括堆棧指針 SP
更靈活的輸入/輸出尋址模式到外圍端口
所有寄存器和內存的單位尋址,包括位測試
在累加器以外的存儲器和寄存器上移位/旋轉
改進和更準確(比以前的 8080)BCD算法
內存中 BCD 數字串的旋轉指令
16 位減法和 8 位取反
程序循環
程序計數器相對跳轉
塊復制、塊輸入/輸出(I/O) 和字節搜索指令。
一個溢出標志,更好地支持有符號 8 位和 16 位算術。
帶有直接基址+偏移尋址指令的新 IX 和 IY索引寄存器
更好的中斷系統:一種更自動和通用的向量化中斷系統:模式 2,主要用于 Zilog 的計數器/定時器系列、DMA 和通信控制器,以及固定向量中斷系統,模式 1,用于具有最少硬件的簡單系統(模式 0為8080 兼容模式)。
不可屏蔽中斷 (NMI),可用于響應掉電情況或其他高優先級事件(并允許簡約的 Z80 系統在模式 1 中輕松實現兩級中斷方案)。
一個完整重復的寄存器文件 ,其可以迅速地切換,以加快響應于中斷,如快速異步事件處理程序或者多任務 調度器。盡管它們不打算用作通用代碼的額外寄存器,但它們在某些應用程序中仍然以這種方式使用。
單個 5 伏電源(8080 需要 -5 V/+5 V/+12 V)。
單相 5 伏時鐘(8080 需要高振幅(9 到 12 伏)非重疊兩相時鐘)。
除非使用更昂貴且密度更低(但速度更快)的 SRAM,否則將需要外部電路的內置DRAM 刷新。
非多路復用總線(8080 將狀態信號多路復用到數據總線上)。
一個特殊的復位功能,它只清除程序計數器,以便單個 Z80 CPU 可以用于開發系統,如在線仿真器。
Z80在處理器市場上取代了 8080 及其后代8085 ,成為最受歡迎的 8 位 CPU 之一。一些組織,例如英國電信,由于對 8085 及其片上串行接口和中斷架構的熟悉,仍然忠于用于嵌入式應用的 8085。英特爾生產的低功耗 CMOS 8085 (80C85) 出現在電池供電的便攜式計算機中,例如1983 年 4 月由Kyocera(日本京瓷公司)設計的筆記本電腦,也由 Tandy 出售(作為TRS-80 Model 100、Olivetti 和 NEC 的各種變體)。然而,在接下來的幾年里,Z80 的 CMOS 版本(來自 Zilog 和日本制造商)也將主導這個市場。
或許 Z80 最初成功的關鍵是內置 DRAM ,至少在CP/M和其他辦公和家用電腦等市場是這樣(大多數 Z80嵌入式系統使用靜態 RAM不需要刷新。),也可能是其簡約的兩級中斷系統,或者相反,它的通用多級菊花鏈中斷系統可用于服務多個Z80 IO芯片。允許使用更少的支持硬件和更簡單的電路板布局來構建系統的所有功能。然而,其他人聲稱它的流行是由于與寄存器較少的 8 位 CPU 相比,復制寄存器允許快速上下文切換或更有效地處理諸如浮點數學之類的事情(Z80 可以在內部保留幾個這樣的數字,使用 HL‘HL、DE’DE 和 BC‘BC 作為 32 位寄存器,避免在計算過程中必須從較慢的 RAM 訪問它們。)
對于最初的NMOS設計,時鐘頻率上限從指標性的 2.5 MHz依次增加 ,通過眾所周知的 4 MHz (Z80A),到 6 MHz(Z80B) 和 8 MHz (Z80H)。自 1980 年代后期以來,NMOS 版本已作為 10 MHz 芯片生產。CMOS版本的開發具有指定的頻率上限,范圍從 4 MHz 到 20 MHz。完全兼容的衍生產品HD64180 / Z180 和eZ80 目前分別指定可以跑到高達 33 MHz和 50 MHz。
兼容的組件
Zilog 為Z80 引入了許多外圍部件,它們都支持Z80 的中斷處理系統和I/O 地址空間。其中包括計數器/定時器通道 (CTC)、SIO(串行輸入輸出)、DMA(直接存儲器訪問)、PIO(并行輸入-輸出)和 DART(雙異步接收器發送器)。隨著產品線的發展,這些芯片的低功耗、高速CMOS版本被引入。
與 8080、8085 和 8086 處理器一樣,但與摩托羅拉 6800 和 MOS Technology 6502 等處理器不同的是,Z80 和 8080 具有單獨的控制線和 I/O 指令地址空間。雖然一些基于 Z80 的計算機(如Osborne 1)使用“摩托羅拉式”內存映射輸入/輸出設備,但使用了通常 I/O 空間用于尋址與 Z80 兼容的眾多 Zilog 外圍芯片之一。Zilog I/O 芯片支持 Z80 的新模式 2 中斷,它簡化了大量外設的中斷處理。
電腦和游戲的革命
在 1970 年代末和 1980 年代初,Z80 被用于大量山寨的具有CP/M操作系統的面向商業的機器,這種組合在當時占據了市場主導地位。運行 CP/M 的 Z80 商用計算機的四個著名示例是Heathkit H89、便攜式Osborne 1、Kaypro系列和Epson QX-10。鮮為人知的是昂貴的高端Otrona Attache一些系統使用多任務操作系統軟件(如MP/M或Morrow的 Micronix)在多個處理器之間共享一個處理器。
Z80同時作為擴展卡引入了家用計算機,它們使用 Z80 作為主處理器或作為插件選項,以方便訪問為 Z80 編寫的軟件。值得注意的是TRS-80系列,包括配備 Z80 作為主處理器的原始型號(后來改名為“Model I”)、Model II、Model III和Model 4,以及一些(但不是全部)其他型號使用 Z80 作為主處理器或輔助處理器的 TRS-80 型號。其他值得注意的機器是DEC Rainbow 100和Seequa Chameleon,兩者都采用英特爾 8088和 Z80 CPU,以支持在 Z80 上運行的 8 位 CP/M-80 應用程序,或與在 8088 上運行不完全兼容的自定義 MS-DOS的PC DOS應用程序 。
1981 年,Multitech(后來成為Acer)推出了Microprofessor I,這是一種用于 Z80 微處理器的簡單且廉價的培訓系統。目前,它仍然由位于英國南安普敦的 Flite Electronics International Limited 制造和銷售。
甲辛克萊 ZX光譜,其中使用的Z80主頻為3.5兆赫
便攜式和掌上電腦
隨著處理器的 CMOS 版本的出現,Z80 在更輕的電池供電設備中的使用變得更加普遍。它還啟發了其他基于 CMOS 的處理器的開發,例如夏普的 LH5801(數據手冊:http://www.pc-1500.info/Data/Service_Manuals/PC-1500_Technical_Reference_Manual.pdf)。
在夏普PC-1500(一個BASIC -可編程袖珍計算機)于1981年發布,采用改良Z80的夏普PC-1600(1986年)和夏普PC-E220(1991年)及夏普精靈系列也陸續發布了。隨后在 1984 年推出了Epson PX-8 Geneva,并在 1985 年推出了愛普生 PX-4和Bondwell-2,他們是可以像臺式機一樣運行 CP/M 操作系統的筆記本電腦。雖然隨后幾年的筆記本電腦市場轉向了更強大的英特爾 8086處理器和 MS-DOS 操作系統,但仍在引入具有更長電池壽命的基于 Z80 的輕量級系統,例如1988 年的Cambridge Z88和1992 年的Amstrad NC100 。Z80 衍生的Z8S180也進入了早期的筆式個人數字助理,1993 年的Amstrad PenPad PDA600(PDA熟悉不!)。
總部位于香港的VTech生產了一系列基于 Z80 的名為“Lasers”的小型筆記本電腦。最后兩個是激光 PC5和 PC6,該CIDCO MailStation Mivo 100,于1999年首次發布,是一個獨立的便攜式電子郵件設備,具有基于Z80的微控制器。德州儀器 (TI) 使用圍繞 Z80 內核構建的東芝處理器生產了一系列袖珍處理器(結束于 2000 年);其中第一個是 TI PS-6200 ,經過幾十個型號的長時間生產運行,最終形成了他們的 PocketMate 系列。
基于 Z80 的PABX。Z80 是從左數第三個芯片,在芯片的右側,上面有手寫的白色標簽
嵌入式系統和消費電子產品
Zilog Z80 長期以來一直是嵌入式系統和微控制器內核中的流行微處理器(最初的定位),直到今天仍然廣泛使用。Z80 的應用包括消費電子產品、工業產品和電子樂器。例如,Z80 用于開創性的音樂合成器Prophet-5,以及第一個 MIDI 合成器Prophet 600。卡西歐在其PV-1000視頻游戲機中使用了 Z80A 。
Z80A 被用作許多游戲機的 CPU,例如ColecoVision
許多 1980 年代早期的街機視頻游戲,包括街機游戲《吃豆人》,都包含 Z80 CPU。
Z80 用于世嘉的Sega Master System和Sega Game Gear游戲機,具有自己的8 KB的RAM,它作為輔助主CPU MC68000,具有與系統的聲音芯片和I / O(控制器)端口,并且具有交換數據路徑與68000 的主內存總線(提供對 64 KB 主 RAM、軟件盒和整個視頻芯片的訪問);除了提供與 Master System 游戲的向后兼容性外,Z80 還經常用于控制 Genesis 軟件中的音頻。
Z80的CPU也被德州儀器用來制作在開創性和流行方面的TI-8系列圖形計算器,TI-81系列圖形計算器從1990年開始,其特點是Z80主頻為2兆赫。該系列中的大多數為高端計算器,從TI-82和TI-85 開始,其 Z80 CPU 的時鐘頻率變為 6 MHz 或更高。(一些帶有 TI-8x 名稱的型號使用其他 CPU,例如 M68000,但絕大多數是基于 Z80 的。在這些型號上,可以以 Z80 機器語言代碼的形式運行組裝或編譯的用戶程序。)。2004 年推出的TI-84 Plus 系列,截至 2020 年仍在生產。TI-84 Plus CE 系列于 2015 年推出,使用 Z80 衍生的Zilog eZ80處理器,截至 2020 年仍在生產中。
1980 年代后期,一系列名為“AON”的蘇聯固定電話采用了 Z80;這些電話通過來電顯示、基于來電者的不同鈴聲、快速撥號等擴展了固定電話的功能集。在 90 年代后半期,這些手機的制造商轉而使用兼容 8051 的 MCU,以降低功耗并防止過熱。
克隆及衍生品
Z80 CPU之所以在世界范圍內廣受歡迎主要原因是其衍生體及克隆版本特別多,下面介紹一些Z80克隆及衍生品。
Mostek 為 Zilog 生產了第一個 Z80,克隆生產了 MK3880 。SGS-Thomson(現在是STMicroelectronics)也克隆生產了他們的 Z8400。Sharp 和NEC 分別克隆生產了 NMOS Z80、LH0080(用于夏普等日本廠商生產的各種家用電腦和個人電腦,包括索尼 MSX電腦,以及夏普MZ系列的多款電腦) 和μPD780C。
東芝制造了 CMOS 版本的 TMPZ84C00,這是與 Zilog 用于其自己的 CMOS Z84C00 的設計相同。還有GoldStar(現LG)生產的Z80芯片和ROHM Electronics生產的NMOS和CMOS中的Z80克隆體BU18400系列(包括DMA、PIO、CTC、DART和SIO)。
在東德,生產了未經許可的復制品 ,稱為U880。它非常流行,被用于Robotron和 VEB Mikroelektronik Mühlhausen 的計算機系統(如KC85系列)以及許多自制的計算機系統。在羅馬尼亞,可以找到另一個未經許可的克隆體,名為MMN80CPU,由Microelectronica生產,用于 TIM-S、HC、COBRA 等家用計算機。
此外,蘇聯還制造了 Z80 的幾個克隆版本-T34BM1(用于預生產系列),也稱為КР1858ВМ1(與蘇聯 8080 克隆版本KR580VM80A(用于更大的生產) 相似)。盡管如此,由于 1980 年代后期蘇聯微電子的崩潰,T34BM1 的數量比 КР1858ВМ1 多得多。
日立開發了HD64180,這是一種采用 CMOS 微編碼和部分動態的 Z80,帶有片上外圍設備和一個提供 1 MB地址空間的簡單 MMU 。后來由 Zilog 第二次采購,最初為 Z64180,然后以略微修改的Z180 的形式提供,其總線協議和時序更適合 Z80 外圍芯片。Z180 一直以 Zilog 的名義進行維護和進一步開發,最新版本基于完全靜態的 S180/L180 內核,具有極低的功耗和 EMI(噪聲)。
東芝開發了84針Z84013/Z84C13和100針Z84015/Z84C15系列的“智能外設控制器”,基本上是普通的NMOS和CMOS Z80內核與Z80外設、看門狗定時器、上電復位、等待狀態發生器在同一芯片上。由夏普和東芝制造。這些產品如今由 Zilog 提供第二來源。1994 年推出的 32 位 Z80 兼容 Zilog Z380主要用于電信設備。
Zilog 的全流水線 Z80 兼容eZ80 具有8/16/24位字長和線性 16 MB 地址空間于 2001 年推出。它帶有片上SRAM或閃存以及集成外設的版本中。 一種變體具有片上MAC(媒體訪問控制器),可用軟件訪問TCP/IP 堆棧。與 Z800 和 Z280 相比,僅增加了少量指令(主要是LEA、PEA和可變地址 16/24 位加載),但指令的執行效率是原始 Z80 的時鐘周期效率的 2 到 11 倍(平均值約為 3-5 倍)。它目前指定用于高達 50 MHz 的時鐘頻率。
川崎(日本上市的跨國)開發了二進制兼容的 KL5C8400,其時鐘周期效率約為原始 Z80 的 1.2-1.3 倍,時鐘頻率最高可達 33 MHz。Kawasaki 還生產 KL5C80A1x 系列,它具有外圍設備以及片上小 RAM;它的時鐘周期效率大約與 eZ80 一樣,并且時鐘頻率最高可達 10 MHz (2006)。
NEC μPD9002 是一款兼容 Z80 和x86系列的混合 CPU 。
中國炬力的音頻處理器系列芯片(ATJ2085 等)包含一個 Z80 兼容MCU和一個 24 位專用 DSP 處理器。這些芯片用于許多 MP3 和媒體播放器產品。
T80 (VHDL) 和 TV80 (Verilog) 可綜合軟核可從 OpenCores.org 獲得。
1980 年宣布的 National Semiconductor NSC800 被用于許多 TeleSecurity Timmann (TST) 電子密碼機和佳能 X-07。NSC 800 與 Z-80 指令集完全兼容。NSC800 使用多路復用總線(8085上使用),但與 Z80 具有不同的引腳排列。
不兼容
東芝TLCS 900系列高體積(主要是OTP)的微控制器是基于Z80; 它們共享相同的基本 BC、DE、HL、IX、IY 寄存器結構,以及基本相同的指令,但不是二進制兼容的,而之前的 TLCS 90 與 Z80 兼容。
NEC 78K系列微控制器是基于Z80; 它們共享相同的基本 BC、DE、HL 寄存器結構,并具有相似(但名稱不同)的指令;不兼容二進制。
部分兼容
Rabbit Semiconductor的Rabbit 2000/3000/4000微處理器/微控制器基于HD64180 / Z180架構,盡管它們不完全兼容二進制。
Zilog 的 NMOS Z800和 CMOS Z280是 16 位 Z80 實現(在HD64180 / Z180之前),具有 16 MB 分頁 MMU 地址空間;他們為 Z80 指令集添加了許多正交化和尋址模式。小型機的特性——例如用戶和系統模式、多處理器支持、片上 MMU、片上指令和數據緩存等——被視為更復雜,而不是對(通常面向電子的)嵌入式系統設計者的功能和支持,這也使得預測指令執行時間變得非常困難。
某些街機游戲如Pang / Buster Bros使用由VLSI Technology制造的加密“歌舞伎”Z80 CPU ,其中解密密鑰存儲在其內部電池后備內存中,以避免盜版和非法盜版游戲。
Z80軟件部分說明
寄存器
與 8080 一樣,8 位寄存器通常配對以提供 16 位版本。與8080 兼容寄存器是:
AF: 8 位累加器(A) 和標志位 (F) 進位、零、減號、奇偶校驗/溢出、半進位(用于BCD)和一個加/減標志(通常稱為 N)也用于 BCD
BC: 16 位數據/地址寄存器或兩個 8 位寄存器
DE: 16 位數據/地址寄存器或兩個 8 位寄存器
HL: 16 位累加器/地址寄存器或兩個 8 位寄存器
SP:堆棧指針,16 位
PC: 程序計數器,16 位
Z80 引入的新寄存器是:
IX: 8 位立即數偏移的 16 位索引或基址寄存器
IY: 8 位立即數偏移的 16 位索引或基址寄存器
I:中斷向量基址寄存器,8位
R:DRAM 刷新計數器,8 位(msb不計數)
AF’:交替(或陰影)累加器和標志(用 EX AF,AF‘ 切換進出)
BC’,DE‘和HL’: 替代(或影子)寄存器(用 EXX 切換進出)
四位中斷狀態和中斷模式狀態
Z80 匯編語言
第一個 Intel 8008匯編語言基于從 Datapoint 2200 設計繼承的非常簡單(但系統)的語法。這種原始語法后來被轉換成一種新的、更傳統的匯編語言形式,用于同樣的原始 8008 芯片。大約在同一時間,新的匯編語言也得到了擴展,以適應更先進的 Intel 8080 芯片中的額外尋址模式(8008 和 8080 共享一個語言子集,但不兼容二進制;然而,8008 與 Datapoint 二進制兼容2200)。
匯編指令對比如下:
匯編示例代碼
以下 Z80 匯編程序源代碼用于名為 HELLO_WORLD 的子例程。眾所周知,這是一個介紹性程序,它將向視頻顯示器打印一條消息,然后退出。雖然很簡單,但它演示了如何格式化匯編源代碼以及如何通過計算機操作系統與顯示硬件交互。
每條指令都按通常稱為機器周期(M 周期)的步驟執行,每條指令可能需要三到六個時鐘周期(T 周期)。每個 M 周期大致對應于一次內存訪問或內部操作。許多指令實際上在下一條指令的 M1 期間結束,這被稱為提取/執行重疊。
責任編輯:haq
-
芯片
+關注
關注
455文章
50714瀏覽量
423158 -
cpu
+關注
關注
68文章
10854瀏覽量
211587 -
計算機
+關注
關注
19文章
7488瀏覽量
87854
原文標題:穿越時空的愛戀-Z80 CPU的前世今生
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論