Silicon Labs(芯科實驗室有限公司)近日發表C8051T610系列低成本8位微控制器,進一步擴大其居於領先的小型微控制器產品線。T610系列管腳兼容於Silicon Labs的C8051F310系列,提供客戶同樣精巧體積的低成本替代方案。C8051T610最適合面臨成本上升壓力的消費及工業應用,包括玩具、相機模塊,手機配件、便攜式裝置、家用裝置和馬達控制器。
T610內含可按字節來燒錄的EPROM,設計人員首次燒錄這些內存後,還能在稍後繼續燒錄尚未使用的內存,這使T610系列的EPROM比傳統的可單次燒錄內存更有彈性。T610採用專利的流水線式單週期8051核心,中央處理器帶寬最高25MIPS,還包含可測量模擬信號的高精確度模擬數字轉換器 (ADC)、穩壓器和精準內部振盪器等許多強大功能,故能提供很高的每平方毫米功能密度,進而減少所需的外部元器件數目以及最終產品的體積與成本。
Silicon Laboratories的小型微控制器提供「四角操作」(four-corner operation) 能力,這表示它們不必限制操作條件就能達到最佳數據表規格。微控制器的中央處理器能在整個操作溫度和供應電壓範圍以25MHz速率操作,而且就算中央處理器以全速操作,ADC在整個溫度和電壓範圍內的速度和精確度也不受影響。芯片內置精準振盪器已經過校準,其誤差在最惡劣的溫度和供應電壓條件下也不會超過 2%,這使其精確度在任何情況下都能達到最起碼的規格要求。
設計人員發展T610應用系統時,可先利用內含閃存的同等級器件F310微控制器設計系統原型,然後再改用T610器件,整個過程完全不必修改硬件。Silicon Labs還提供一套功能完整的開發套件,包括利用T610發展嵌入式系統所需的全部硬件與軟件以及一個用來燒錄EPROM內存的插座。
C8051T610小型微控制器系列現已開始供應。
Copyright © 2008 Dennis email: moueintw@hotmail.com
2008年1月11日 星期五
2008年1月10日 星期四
Xilinx unveils FPGA-based auto ECU devt kit
At the Consumer Electronics Show (CES), Xilinx, Inc. has announced immediate availability of the Xilinx Automotive (XA) Electronic Control Unit (ECU) Development Kit, based on its low-cost family of automotive-qualified Xilinx XA Spartan-3E field programmable gate arrays. The XA Automotive ECU kit provides a platform for rapid development of in-vehicle networking, infotainment, driver assistance, and driver information systems.
Xilinx teamed with Si-Gate GmbH to develop the XA Automotive ECU Development Kit. The kit includes a development board with pre-engineered hardware interfaces, and supports a host of automotive application intellectual property. With such a complete development environment, automotive designers can quickly evaluate devices and get their designs up and running right out of the box.
"The inherent flexibility and programmability of FPGAs have changed the way automotive systems designers think about development time. Now, it's all about making it easier for them to build more complex FPGA-based systems even faster, and reducing that key time-to-market," said Kevin Tanaka, worldwide automotive marketing and product planning manager of the Automotive Division at Xilinx. "Our new Automotive ECU Development Kit does just that, enabling integration of low-cost FPGA platforms into a new breed of intelligent in-vehicle electronics."
The XA Automotive ECU Development Kit provides all the components needed to develop entire subsystems, including an XA1600E development board equipped with an XA Spartan-3E 1.6 million system gate FPGA, and on-board hardware interfaces such as CAN 2.0B and C, Ethernet 10/100, USB 2.0, SPI and SCI. Pre-verified Xilinx and third-party application IP provides the necessary building blocks for developing MOST systems, FlexRay connectivity, along with high and low-speed CAN bus interfaces. The kit also includes a power supply with universal adapter, programming and custom serial cables, QuickStart Guide, and resource CD with a reference design for easy evaluation. Evaluation versions of the Xilinx Embedded Development Kit and ISE design tools are also supported.
The XA Spartan-3E FPGA family is tested to meet the needs of high-volume, cost-sensitive automotive electronics applications. The five-member family offers densities ranging from 100,000 to 1.6 million-system gates with various package options. These 90-nm devices deliver more functionality and I/O bandwidth per dollar than previously possible, setting new standards in the programmable logic industry. Because of their exceptionally low cost, XA Spartan-3E FPGAs offer a superior alternative to the high mask costs and lengthy development cycles of ASICs and ASSPs.
The XA Automotive ECU Development Kit is immediately available for Rs.59,020.19 ($1,495).
Xilinx teamed with Si-Gate GmbH to develop the XA Automotive ECU Development Kit. The kit includes a development board with pre-engineered hardware interfaces, and supports a host of automotive application intellectual property. With such a complete development environment, automotive designers can quickly evaluate devices and get their designs up and running right out of the box.
"The inherent flexibility and programmability of FPGAs have changed the way automotive systems designers think about development time. Now, it's all about making it easier for them to build more complex FPGA-based systems even faster, and reducing that key time-to-market," said Kevin Tanaka, worldwide automotive marketing and product planning manager of the Automotive Division at Xilinx. "Our new Automotive ECU Development Kit does just that, enabling integration of low-cost FPGA platforms into a new breed of intelligent in-vehicle electronics."
The XA Automotive ECU Development Kit provides all the components needed to develop entire subsystems, including an XA1600E development board equipped with an XA Spartan-3E 1.6 million system gate FPGA, and on-board hardware interfaces such as CAN 2.0B and C, Ethernet 10/100, USB 2.0, SPI and SCI. Pre-verified Xilinx and third-party application IP provides the necessary building blocks for developing MOST systems, FlexRay connectivity, along with high and low-speed CAN bus interfaces. The kit also includes a power supply with universal adapter, programming and custom serial cables, QuickStart Guide, and resource CD with a reference design for easy evaluation. Evaluation versions of the Xilinx Embedded Development Kit and ISE design tools are also supported.
The XA Spartan-3E FPGA family is tested to meet the needs of high-volume, cost-sensitive automotive electronics applications. The five-member family offers densities ranging from 100,000 to 1.6 million-system gates with various package options. These 90-nm devices deliver more functionality and I/O bandwidth per dollar than previously possible, setting new standards in the programmable logic industry. Because of their exceptionally low cost, XA Spartan-3E FPGAs offer a superior alternative to the high mask costs and lengthy development cycles of ASICs and ASSPs.
The XA Automotive ECU Development Kit is immediately available for Rs.59,020.19 ($1,495).
三洋採用Altera FPGA與Nios II組合方案提升系統效能
Altera公司宣佈,三洋電子(SANYO)已採用Altera Cyclone II FPGA和Nios II嵌入式處理器,應用在其PLV-Z2000 1080p家庭劇院投影機,以進一步提高家庭娛樂系統的影像品質;並應用在其CCA-BC200汽車後視倒車攝影系統,以降低廣角和偏角失真。
Altera的Cyclone II FPGA結合其Nios II嵌入式處理器,可實現高性能影像處理功能,例如縮放和編碼以及控制功能。而Nios II嵌入式處理器具備多項增強功能,包括浮點、硬體加速與C程式碼函式自動加速等,使其持續在軟式核心處理器領域的性能優勢。
Altera公司的FPGA和嵌入式處理器組合方案的高階影像處理功能,可使三洋最新款家庭劇院投影機的對比度達到15,000:1,實現色彩更豐富、更逼真的影像,同時提高了解析度,柔和的影像甚至達到膠片的視覺感受,所提供的7級預設校準功能可適應各種視聽室和環境亮度變化。
Altera解決方案還可實現影像轉換、濾波、平滑和混合等高階演算法,為三洋電子CCA-BC200系統提供即時「魚眼」校正功能,防止「梯形失真」。這些功能實現清晰、正確的影像,幫助駕駛員安全地進行倒車,清楚地看到道路上有什麼障礙。
三洋電子的CCA-BC200是首款配件市場後視倒車攝影系統。該系統可以連接至所有汽車的視訊監視系統,對影像進行數位校正,實現更清晰自然的影像。
此外,三洋電子並表示,採用Altera的Quartus II軟體也使其更為提高整合度,以迅速實現各種複雜設計與獲得產品上市優勢。三洋電子並在2008年國際消費性電子展(CES)上,展示其PLV-Z2000 1080p家庭劇院投影機與後視倒車攝影系統。
Altera的Cyclone II FPGA結合其Nios II嵌入式處理器,可實現高性能影像處理功能,例如縮放和編碼以及控制功能。而Nios II嵌入式處理器具備多項增強功能,包括浮點、硬體加速與C程式碼函式自動加速等,使其持續在軟式核心處理器領域的性能優勢。
Altera公司的FPGA和嵌入式處理器組合方案的高階影像處理功能,可使三洋最新款家庭劇院投影機的對比度達到15,000:1,實現色彩更豐富、更逼真的影像,同時提高了解析度,柔和的影像甚至達到膠片的視覺感受,所提供的7級預設校準功能可適應各種視聽室和環境亮度變化。
Altera解決方案還可實現影像轉換、濾波、平滑和混合等高階演算法,為三洋電子CCA-BC200系統提供即時「魚眼」校正功能,防止「梯形失真」。這些功能實現清晰、正確的影像,幫助駕駛員安全地進行倒車,清楚地看到道路上有什麼障礙。
三洋電子的CCA-BC200是首款配件市場後視倒車攝影系統。該系統可以連接至所有汽車的視訊監視系統,對影像進行數位校正,實現更清晰自然的影像。
此外,三洋電子並表示,採用Altera的Quartus II軟體也使其更為提高整合度,以迅速實現各種複雜設計與獲得產品上市優勢。三洋電子並在2008年國際消費性電子展(CES)上,展示其PLV-Z2000 1080p家庭劇院投影機與後視倒車攝影系統。
Altera Cyclone III系列65-nm FPGA 8個型號產品實現量產
Altera公司日前宣佈,低功耗、低成本Cyclone III系列65-nm FPGA所有8個型號的產品級芯片實現量產。自從2007年3月推出以來,Cyclone III系列產品已迅速應用於無線、軍事、顯示、汽車和工業市場的大量客戶系統中。
Altera公司低成本產品營銷總監Luanne Schirrmeister評論說:「作為業界首款也是唯一一款65-nm低成本FPGA系列,Cyclone III器件在數字系統設計中前所未有地同時實現了高密度、低功耗和低成本。而當今FPGA設計人員需要的是經過硬件測試的全面解決方案,因此,我們開發並推出了三種不同的開發套件,以及專用知識產權和參考設計,以加速產品面市,幫助客戶降低開發成本。」
Cyclone III器件應用成功的幾個例子包括:
·需要實時以太網通信的工業設備,為包括EtherCAT在內的多種協議提供知識產權(IP)支持
·為汽車網絡設計人員提供的網絡接口產品
·適合軟件無線電(SDR)應用的軟件編程配置平台
Cyclone III器件功耗比競爭FPGA低75%,具有5K至120K的邏輯單元(LE),以及4 Mbits的存儲器和288個數字信號處理(DSP)乘法器。Cyclone III系列採用了台積電(TSMC)的65-nm低功耗(LP)工藝,提供商業、工業和擴展溫度範圍支持
Altera公司低成本產品營銷總監Luanne Schirrmeister評論說:「作為業界首款也是唯一一款65-nm低成本FPGA系列,Cyclone III器件在數字系統設計中前所未有地同時實現了高密度、低功耗和低成本。而當今FPGA設計人員需要的是經過硬件測試的全面解決方案,因此,我們開發並推出了三種不同的開發套件,以及專用知識產權和參考設計,以加速產品面市,幫助客戶降低開發成本。」
Cyclone III器件應用成功的幾個例子包括:
·需要實時以太網通信的工業設備,為包括EtherCAT在內的多種協議提供知識產權(IP)支持
·為汽車網絡設計人員提供的網絡接口產品
·適合軟件無線電(SDR)應用的軟件編程配置平台
Cyclone III器件功耗比競爭FPGA低75%,具有5K至120K的邏輯單元(LE),以及4 Mbits的存儲器和288個數字信號處理(DSP)乘法器。Cyclone III系列採用了台積電(TSMC)的65-nm低功耗(LP)工藝,提供商業、工業和擴展溫度範圍支持
Cadence, Mentor launch Open Verification Methodology
A result of their joint efforts to unify the SystemVerilog method, Cadence Design Systems Inc. and Mentor Graphics Corp. has launched the Open Verification Methodology (OVM).
Distributed under the standard open-source Apache 2.0 license, the OVM source code, documentation and use examples may be downloaded free of charge from www.ovmworld.org. The OVM Web site is the central point of access for the OVM source code, providing information about partners, events, seminars, training, how-to instructions and future plans.
The OVM, based on IEEE Std. 1800-2005 SystemVerilog standard, is the first open, language interoperable, SystemVerilog verification methodology in the industry. The OVM provides a methodology and accompanying library that allow users to create modular, reusable verification environments in which components communicate with each other via standard transaction-level modeling interfaces. It also enables intra- and inter-company reuse through a common methodology and classes for virtual sequences and block-to-system reuse, and full integration with other languages commonly used in production flows.
As a joint development initiative between Mentor Graphics and Cadence Design Systems, the OVM is supported on multiple verification platforms ideally suited to both novice and expert verification engineers.
The OVM includes the foundation-level utilities necessary for building advanced object-oriented, coverage-driven verification environments and reusable verification IP (VIP) in SystemVerilog. The OVM reduces the complexity of adopting SystemVerilog by embedding verification practices into its methodology and library, and significantly shortens the time to create verification environments. It easily integrates plug-and-play VIP and ensures code portability and reuse.
"The OVM represents a major step forward in protecting our customers' investment in verification flows and reusable VIP," said Robert Hum, VP and general manager of Mentor's verification and test business unit. "After extensive customer interaction, we believe OVM will definitely accelerate the move to SystemVerilog, and provide significant competitive advantage to design and verification teams around the world."
"We have discussed OVM with more than a thousand engineers at customer sites and have worked with more than a dozen customers and partners during the beta period," said Ziv Binyamini, corporate VP, product and technologies organization at Cadence. "The level of interest in OVM is overwhelming, so we are pleased to be able to make it available to the entire industry as a critical step in delivering on the full promise of SystemVerilog."
Distributed under the standard open-source Apache 2.0 license, the OVM source code, documentation and use examples may be downloaded free of charge from www.ovmworld.org. The OVM Web site is the central point of access for the OVM source code, providing information about partners, events, seminars, training, how-to instructions and future plans.
The OVM, based on IEEE Std. 1800-2005 SystemVerilog standard, is the first open, language interoperable, SystemVerilog verification methodology in the industry. The OVM provides a methodology and accompanying library that allow users to create modular, reusable verification environments in which components communicate with each other via standard transaction-level modeling interfaces. It also enables intra- and inter-company reuse through a common methodology and classes for virtual sequences and block-to-system reuse, and full integration with other languages commonly used in production flows.
As a joint development initiative between Mentor Graphics and Cadence Design Systems, the OVM is supported on multiple verification platforms ideally suited to both novice and expert verification engineers.
The OVM includes the foundation-level utilities necessary for building advanced object-oriented, coverage-driven verification environments and reusable verification IP (VIP) in SystemVerilog. The OVM reduces the complexity of adopting SystemVerilog by embedding verification practices into its methodology and library, and significantly shortens the time to create verification environments. It easily integrates plug-and-play VIP and ensures code portability and reuse.
"The OVM represents a major step forward in protecting our customers' investment in verification flows and reusable VIP," said Robert Hum, VP and general manager of Mentor's verification and test business unit. "After extensive customer interaction, we believe OVM will definitely accelerate the move to SystemVerilog, and provide significant competitive advantage to design and verification teams around the world."
"We have discussed OVM with more than a thousand engineers at customer sites and have worked with more than a dozen customers and partners during the beta period," said Ziv Binyamini, corporate VP, product and technologies organization at Cadence. "The level of interest in OVM is overwhelming, so we are pleased to be able to make it available to the entire industry as a critical step in delivering on the full promise of SystemVerilog."
IT自救術-x86處理器的結構
文/嚴立群 (記者) 2008-01-10
既然是要研究處理器的「原理」,所以我們得找個「簡單的」來開刀。就類似可憐的青蛙總是要在生物課被解剖一樣,你總不好一開始就解剖大野狼吧!
要了解個人電腦的運作原理,我們決定先研究處理器的原理。而為了研究處理器的原理,我們挑選了所謂的「Intel x86」處理器作為研究的對象。
為何不挑別種處理器?x86處理器是個好的研究對象嗎?
從「幾乎人手一臺」這個角度看,x86是個很讚的研究對象。
有人會說,「x86的架構不夠優雅」、「x86就像是用膠水、剪刀等工具去拼貼出來的怪物」、「x86的概念很落後」、「x86有很多歷史的包袱」。老實說,他們說的都對。
但是,so what?
又沒人要你跟它結婚?我們只是研究一門學問而已。x86處理器雖然不夠完美,可看在它可是目前地球上數量最多的處理器的份上,就用它來當作研究的對象,實在很方便。所以,關於「美學」和「神學」的部份,暫時就不要理會了。
x86的「由來」
處理器早期並不是一顆晶片。早期的電腦,CPU是由一大堆晶片組成,專司「運算」的功能。一大堆晶片,占用很大的空間,真空管閃爍著奇異的光芒並發出高熱,計算的結果用燈號顯示。不過,這種畫面我只看過照片,沒有親眼見過,也許某些紀錄片上出現過吧!
直接跳到近代,Intel製造了所謂的「微處理器」。Intel在處理器市場算是先驅,第一個產品稱為4004,後來又陸續推出了8008、8080、 8086、8088……。不過,真正讓Intel大紅大紫的產品,當然是首先被IBM選用,拿去製造IBM PC的「8088」。
Intel在8088之後,陸續推出了很多後繼產品,像是80186/188、80286、80386和80486。這些產品(除了 80186/188以外)都大量使用在IBM 相容PC電腦上。由於太受歡迎了,因此有許多公司就開始了「仿製」的工程。幾個比較有名的,包括了NEC(V20、V30)、AMD(AMD的286、 386和Am486等等)、Cyrix……。臺灣的聯電也做過,不過很快就收掉了這個事業(原因很難說,但是很快就收得一絲痕跡都不留)。
使用編號來命名晶片,是電子業的慣例。電子產品使用各家的晶片組裝,而相同(或是類似)編號的晶片會有幾乎一模一樣的性能,也就成為眾所周知的事情。所以,大家仿製Intel的處理器,也會刻意(如果膽子夠大)使用x86的編號。但這對Intel來說,可不是件令他們開心的事情。不幸的是,由於編號不能註冊,Intel也無法主張他們有80x86的商標使用權。因此,80486系列處理器之後,Intel幫處理器改名為Pentium,沿用至最近。目前Pentium處理器已經陸續被更高階的「Core」系列所取代,但Pentium名稱仍在中、低階產品中繼續使用。
不過,由於80x86這名稱被使用得太廣泛,因此,這系列處理器就被廣泛的稱為x86處理器。相關的產品(作業系統、編譯程式……)也都會冠上x86字眼。舉例來說,Windows Vista其中一個就是「x86版本」。
處理器的「名稱」和「相容」間的關係
多年以前,當Intel把當時他們最新推出的處理器命名為Pentium,並註冊為商標之後,其他廠商就不「方便」再抄了。有一種方法是:那使用原本應該用的「586」當處理器名字(反正你Intel不用,那我用)。另外的方式則是:我也取個自己的名字,但是設法讓大家知道,我的處理器和 Intel相容。
當年市場上的兩個主要x86相容處理器製造廠商,一個是Cyrix,它就曾經推出過所謂的Cyrix 5x86和6x86處理器;另一個就是現在還頗知名的AMD,它當年則推出過所謂的5K86。你可以說,因為競爭激烈,廠商無所不用其極地想玩出自己的一片天。
這時,我們可以給各位一個很重要的概念,稱為處理器的「相容」。
處理器只是個晶片,接收電子訊號,然後傳出電子訊號。這些電子訊號通常有代表意義,送進來的是程式和資料,傳出去的是運算結果。Intel設計出一個處理器,能夠做訊號的處理(也就是接受「輸入」並提供「輸出」);你如果能做出一個處理器,能夠達到和模仿對象一樣的輸入/輸出結果,那就是「相容」。
請各位先複習一下上期講的,構成處理器的兩個元素,一個是「暫存器」,一個是「指令」。然後,請各位再看看這期的程式範例,一樣的印字程式。
通常,處理器有它的暫存器和專屬的指令,程式得使用該處理器專屬的暫存器結構和指令,才能正常運作。以印字程式為例,「MOV AH, 02」這行程式碼,執行時會變成「電子訊號」送到處理器裡面。「相容處理器」有什麼特色?很簡單,它們只要能處理一樣的程式碼,能夠輸入相同的電子訊號並得到一樣的程式碼執行效果,那就是「相容」。
不過,硬體是個很複雜的東西,老實說要做到「100%相容」真不是件容易的事。只不過利之所趨,還是有人有辦法可以做出相容處理器,並且執行各種程式,真是很厲害。
x86與x64的簡單說明
當然,在競爭者環伺的情況下,Intel只有設法不斷推出更新、更快、更好的產品以設法擊敗競爭者。所以早期的處理器有所謂的16位元處理器,像是8086/8088和80286。
所謂16位元,這「位元」指的是暫存器的寬度(一般說法是如此)。暫存器是「暫存資料,供處理器用在運算用途的空間」,因此它的寬度(空間大小),會影響資料處理的速度和精密程度。一般而言,16位元處理器的暫存器寬度,實在是太小了,因此在80386推出時,Intel使用的是32位元暫存器架構,整個指令集也因此大幅翻新。
這個架構,到現在仍是所有x86處理器和應用程式使用的主要架構,可說是夠偉大囉!
所以,目前只要提到x86架構,大多是指這個32位元的Intel處理器架構,Intel自己則是使用「IA-32」這樣的名稱。
AMD為了要贏過Intel,並提供自己的處理器一個更優的特點,在幾年前則推出了所謂的64位元架構,使用在自己的AMD Athlon處理器上。只是後來Intel處理器也全面支援這個架構,並使用自己的「IA-64」或是「EM64T」的名稱。目前新出世的處理器,大多支援此架構了。而Microsoft最新推出的Windows Vista,也因此有所謂的Vista x86和Vista x64兩個版本。簡而言之,「x86」就是32位元架構,而「x64」則是指64位元架構。這樣的說法不算精確,乃是「約定俗成」,但是一般都是如此稱呼,各位知道一下並無壞處。
此外就是,x86處理器升級到64位元之後,通常在設計上就是「雙模」,既可以跑32位元程式,也可以跑64位元程式。不過,這都得在64位元作業系統下才能發揮。這部份的課題稍微複雜,我現在僅簡單跟各位宣布:目前64位元的應用程式主要都是「專業的繪圖、數學軟體」,一般應用軟體就很少了。
那有沒有128位元處理器?
我聽過一個說法,64位元處理器就夠地球人移民到織女星了,所以128位元處理器應該是不用想太多。
x86暫存器架構
當你在命令列使用DEBUG,無論你的處理器是Pentium III、Pentium 4還是Core/Core 2 Duo,這時它的行為都會像是個8086。
太好了,因為這樣夠單純,所以我們來看看8086的暫存器架構。
再次強調,所謂的「暫存器」就是可以「暫時地記住數字」,方便處理器進行演算用的空間而已,「暫存一下數字」就對了。早期的處理器暫存器數量很小,寬度也不寬。8086已經算是先進的產品!有十四個主要的暫存器,並有六種不同的種類:
一般用途暫存器
8086共有四個General Purpose Register,稱為AX、BX、CX、DX。不過,ABCD可不是因為「它們是英文的前面四個字母」而已,A可以視為是「Accumulator」,累積器(就是最一般、最常用的用途的意思);B可視為是「Base」,基底的意思(基底是什麼意思?先別管好了);C通常用來當作「Counter」,計數器;D通常表示「Data General」,「一般存放資料用途」的意思。
一般用途暫存器雖然是「可以萬用」,但實際上不是每個都可以的,像是CX,大多就真的用來做計數器,並不會隨便亂用之,所以8086的一般用途暫存器其實很少的。
節區暫存器
執行程式時,x86的設計是讓程式碼中分區存放程式、資料等等,其中的管理會依靠所謂的「Segment Register」。8086共有CS、DS、SS和ES等四個節區暫存器。
堆疊暫存器
SP和BP是Stack Pointer暫存器,通常是用在「程式碼堆疊的控制」上頭。
喔,堆疊是啥?呵呵,也一樣,先別管吧!等你寫程式時,用到了才能比較理解。
索引暫存器
SI和DI是所謂的Index暫存器,可以用來當作像是大量記憶空間(程式裡面的陣列)中,像是A[1]、A[2]的索引指示用。
旗標暫存器
Flag Register主要是記錄程式執行的一些「狀態」,很像是「信號機」。利用這些旗標狀態的變化,程式設計師才得以控制程式的流程。
程式計數器
IP(Instruction Pointer)主要就是記錄程式碼目前執行位址的暫存器。
本期結語:只能從實踐中漸漸了解
其實,從「文字說明」中,各位很難了解處理器運作的原理。你得從程式的「實作」中,才能真正了解到底暫存器是怎麼一回事?堆疊、指標又是怎麼運用?老實說,無論是文書處理還是該死的病毒,都是用這些程式原理去撰寫的,不了解之,你就無法了解電腦的運作原理了。
下期我想先從DEBUG的教學,來教各位認識x86處理器的簡單架構。
既然是要研究處理器的「原理」,所以我們得找個「簡單的」來開刀。就類似可憐的青蛙總是要在生物課被解剖一樣,你總不好一開始就解剖大野狼吧!
要了解個人電腦的運作原理,我們決定先研究處理器的原理。而為了研究處理器的原理,我們挑選了所謂的「Intel x86」處理器作為研究的對象。
為何不挑別種處理器?x86處理器是個好的研究對象嗎?
從「幾乎人手一臺」這個角度看,x86是個很讚的研究對象。
有人會說,「x86的架構不夠優雅」、「x86就像是用膠水、剪刀等工具去拼貼出來的怪物」、「x86的概念很落後」、「x86有很多歷史的包袱」。老實說,他們說的都對。
但是,so what?
又沒人要你跟它結婚?我們只是研究一門學問而已。x86處理器雖然不夠完美,可看在它可是目前地球上數量最多的處理器的份上,就用它來當作研究的對象,實在很方便。所以,關於「美學」和「神學」的部份,暫時就不要理會了。
x86的「由來」
處理器早期並不是一顆晶片。早期的電腦,CPU是由一大堆晶片組成,專司「運算」的功能。一大堆晶片,占用很大的空間,真空管閃爍著奇異的光芒並發出高熱,計算的結果用燈號顯示。不過,這種畫面我只看過照片,沒有親眼見過,也許某些紀錄片上出現過吧!
直接跳到近代,Intel製造了所謂的「微處理器」。Intel在處理器市場算是先驅,第一個產品稱為4004,後來又陸續推出了8008、8080、 8086、8088……。不過,真正讓Intel大紅大紫的產品,當然是首先被IBM選用,拿去製造IBM PC的「8088」。
Intel在8088之後,陸續推出了很多後繼產品,像是80186/188、80286、80386和80486。這些產品(除了 80186/188以外)都大量使用在IBM 相容PC電腦上。由於太受歡迎了,因此有許多公司就開始了「仿製」的工程。幾個比較有名的,包括了NEC(V20、V30)、AMD(AMD的286、 386和Am486等等)、Cyrix……。臺灣的聯電也做過,不過很快就收掉了這個事業(原因很難說,但是很快就收得一絲痕跡都不留)。
使用編號來命名晶片,是電子業的慣例。電子產品使用各家的晶片組裝,而相同(或是類似)編號的晶片會有幾乎一模一樣的性能,也就成為眾所周知的事情。所以,大家仿製Intel的處理器,也會刻意(如果膽子夠大)使用x86的編號。但這對Intel來說,可不是件令他們開心的事情。不幸的是,由於編號不能註冊,Intel也無法主張他們有80x86的商標使用權。因此,80486系列處理器之後,Intel幫處理器改名為Pentium,沿用至最近。目前Pentium處理器已經陸續被更高階的「Core」系列所取代,但Pentium名稱仍在中、低階產品中繼續使用。
不過,由於80x86這名稱被使用得太廣泛,因此,這系列處理器就被廣泛的稱為x86處理器。相關的產品(作業系統、編譯程式……)也都會冠上x86字眼。舉例來說,Windows Vista其中一個就是「x86版本」。
處理器的「名稱」和「相容」間的關係
多年以前,當Intel把當時他們最新推出的處理器命名為Pentium,並註冊為商標之後,其他廠商就不「方便」再抄了。有一種方法是:那使用原本應該用的「586」當處理器名字(反正你Intel不用,那我用)。另外的方式則是:我也取個自己的名字,但是設法讓大家知道,我的處理器和 Intel相容。
當年市場上的兩個主要x86相容處理器製造廠商,一個是Cyrix,它就曾經推出過所謂的Cyrix 5x86和6x86處理器;另一個就是現在還頗知名的AMD,它當年則推出過所謂的5K86。你可以說,因為競爭激烈,廠商無所不用其極地想玩出自己的一片天。
這時,我們可以給各位一個很重要的概念,稱為處理器的「相容」。
處理器只是個晶片,接收電子訊號,然後傳出電子訊號。這些電子訊號通常有代表意義,送進來的是程式和資料,傳出去的是運算結果。Intel設計出一個處理器,能夠做訊號的處理(也就是接受「輸入」並提供「輸出」);你如果能做出一個處理器,能夠達到和模仿對象一樣的輸入/輸出結果,那就是「相容」。
請各位先複習一下上期講的,構成處理器的兩個元素,一個是「暫存器」,一個是「指令」。然後,請各位再看看這期的程式範例,一樣的印字程式。
通常,處理器有它的暫存器和專屬的指令,程式得使用該處理器專屬的暫存器結構和指令,才能正常運作。以印字程式為例,「MOV AH, 02」這行程式碼,執行時會變成「電子訊號」送到處理器裡面。「相容處理器」有什麼特色?很簡單,它們只要能處理一樣的程式碼,能夠輸入相同的電子訊號並得到一樣的程式碼執行效果,那就是「相容」。
不過,硬體是個很複雜的東西,老實說要做到「100%相容」真不是件容易的事。只不過利之所趨,還是有人有辦法可以做出相容處理器,並且執行各種程式,真是很厲害。
x86與x64的簡單說明
當然,在競爭者環伺的情況下,Intel只有設法不斷推出更新、更快、更好的產品以設法擊敗競爭者。所以早期的處理器有所謂的16位元處理器,像是8086/8088和80286。
所謂16位元,這「位元」指的是暫存器的寬度(一般說法是如此)。暫存器是「暫存資料,供處理器用在運算用途的空間」,因此它的寬度(空間大小),會影響資料處理的速度和精密程度。一般而言,16位元處理器的暫存器寬度,實在是太小了,因此在80386推出時,Intel使用的是32位元暫存器架構,整個指令集也因此大幅翻新。
這個架構,到現在仍是所有x86處理器和應用程式使用的主要架構,可說是夠偉大囉!
所以,目前只要提到x86架構,大多是指這個32位元的Intel處理器架構,Intel自己則是使用「IA-32」這樣的名稱。
AMD為了要贏過Intel,並提供自己的處理器一個更優的特點,在幾年前則推出了所謂的64位元架構,使用在自己的AMD Athlon處理器上。只是後來Intel處理器也全面支援這個架構,並使用自己的「IA-64」或是「EM64T」的名稱。目前新出世的處理器,大多支援此架構了。而Microsoft最新推出的Windows Vista,也因此有所謂的Vista x86和Vista x64兩個版本。簡而言之,「x86」就是32位元架構,而「x64」則是指64位元架構。這樣的說法不算精確,乃是「約定俗成」,但是一般都是如此稱呼,各位知道一下並無壞處。
此外就是,x86處理器升級到64位元之後,通常在設計上就是「雙模」,既可以跑32位元程式,也可以跑64位元程式。不過,這都得在64位元作業系統下才能發揮。這部份的課題稍微複雜,我現在僅簡單跟各位宣布:目前64位元的應用程式主要都是「專業的繪圖、數學軟體」,一般應用軟體就很少了。
那有沒有128位元處理器?
我聽過一個說法,64位元處理器就夠地球人移民到織女星了,所以128位元處理器應該是不用想太多。
x86暫存器架構
當你在命令列使用DEBUG,無論你的處理器是Pentium III、Pentium 4還是Core/Core 2 Duo,這時它的行為都會像是個8086。
太好了,因為這樣夠單純,所以我們來看看8086的暫存器架構。
再次強調,所謂的「暫存器」就是可以「暫時地記住數字」,方便處理器進行演算用的空間而已,「暫存一下數字」就對了。早期的處理器暫存器數量很小,寬度也不寬。8086已經算是先進的產品!有十四個主要的暫存器,並有六種不同的種類:
一般用途暫存器
8086共有四個General Purpose Register,稱為AX、BX、CX、DX。不過,ABCD可不是因為「它們是英文的前面四個字母」而已,A可以視為是「Accumulator」,累積器(就是最一般、最常用的用途的意思);B可視為是「Base」,基底的意思(基底是什麼意思?先別管好了);C通常用來當作「Counter」,計數器;D通常表示「Data General」,「一般存放資料用途」的意思。
一般用途暫存器雖然是「可以萬用」,但實際上不是每個都可以的,像是CX,大多就真的用來做計數器,並不會隨便亂用之,所以8086的一般用途暫存器其實很少的。
節區暫存器
執行程式時,x86的設計是讓程式碼中分區存放程式、資料等等,其中的管理會依靠所謂的「Segment Register」。8086共有CS、DS、SS和ES等四個節區暫存器。
堆疊暫存器
SP和BP是Stack Pointer暫存器,通常是用在「程式碼堆疊的控制」上頭。
喔,堆疊是啥?呵呵,也一樣,先別管吧!等你寫程式時,用到了才能比較理解。
索引暫存器
SI和DI是所謂的Index暫存器,可以用來當作像是大量記憶空間(程式裡面的陣列)中,像是A[1]、A[2]的索引指示用。
旗標暫存器
Flag Register主要是記錄程式執行的一些「狀態」,很像是「信號機」。利用這些旗標狀態的變化,程式設計師才得以控制程式的流程。
程式計數器
IP(Instruction Pointer)主要就是記錄程式碼目前執行位址的暫存器。
本期結語:只能從實踐中漸漸了解
其實,從「文字說明」中,各位很難了解處理器運作的原理。你得從程式的「實作」中,才能真正了解到底暫存器是怎麼一回事?堆疊、指標又是怎麼運用?老實說,無論是文書處理還是該死的病毒,都是用這些程式原理去撰寫的,不了解之,你就無法了解電腦的運作原理了。
下期我想先從DEBUG的教學,來教各位認識x86處理器的簡單架構。
2008年1月9日 星期三
Xilinx開放源碼硬件運動成果初現,產學研共引電子創新設計新
Xilinx開放源碼硬件運動成果初現,產學研共引電子創新設計新潮
上網時間 : 2008年01月10日
自2007年6月正式開始的覆蓋全國高校的「中國電子學會Xilinx開放源碼硬件創新大賽」初賽經過大賽組委會的認真篩選,來自34所高校的53支隊伍從170多支參賽隊伍中脫穎而出,入圍複賽階段。入圍隊伍中,大連理工,清華,電子科大, 西安電子科大等表現突出, 僅大連理工就有6支隊伍進入複賽。
開賽以來,包括清華、北大、中國電子科技大學、西安電子科技大學、中國科技大學等在內的近50所高校學生踴躍報名,共有170多只隊伍的1000多位在校研究生和博士生在導師的帶領下組隊參加了此次大賽。預賽近150個項目全部採用FPGA設計,範圍覆蓋工業控制、多媒體、通信, 消費電子等多種領域, 設計創意精彩紛呈, 充分展示了可編程技術的領域廣泛的應用。賽靈思提供的工具和FPGA系統在比賽當中一直是作為各個項目的核心技術。
「我國一直都在提倡自主知識產權創新, 創新的根本在於能夠從源頭開始」 中國電子學會秘書長劉汝林表示:「開放源碼硬件創新大賽不僅激發了中國電子界從源頭創新的熱情,而且為中國電子產業的源頭創新提供了一個參考,交流,借鑑, 提升和孵化的平台, 具有更深遠的意義
「我們非常高興賽靈思配合中國電子學會倡導的開放源碼硬件運動獲得學界和業界的廣泛關注」 中國大學計劃經理謝凱年博士說:「初賽中所湧現出的大批從源頭創新的項目和人才,不僅對電子設計行業對可編程技術的廣泛應用打開了廣闊的思路,而且對中國電子界從源頭創新的熱情也起到了積極的推動作用
據悉, 入圍隊伍只要提交SRC,BIT和完整開發文檔,並且通過組委會驗證的項目,都將獲得賽靈思公司用於複賽的相應高級開發板支持。目前已經有超過30支隊伍獲得了S3E和V2P開發板支持。由於廣大參賽者熱情高漲,賽靈思公司決定加大開發板投入力度, 預計更多的入圍隊伍可以獲得免費的開發板支持。
據介紹, 決賽預計將在2008年產4月在江蘇省無錫國家集成電路設計基地舉行。 為此,賽靈思將組織包括清華大學,浙江大,上海交通大學,東南大學,中國科技大學,西安電子科技大學,北京郵電大學,南京航空航天大學等知名高校教授以及來自於賽靈思, IBM, NI,MATHWORKS等業界知名公司的專家組成大賽評委會, 評選出最後的優勝者。此外,賽靈思還將通過相繼在上海,無錫等地建立的創新以及孵化中心,以及賽靈思亞太技術基金一起完成後續項目的評估和資助。
此次大賽的網站技術提供商EEFocus公司通過在大賽官方網站www. Openhard.org上對比賽進程的跟蹤報導以及代碼的共享為參賽者提供了一個高效、方便的參與平台。此外,專門開通的源代碼代碼管理和缺陷跟蹤平台,也使得啟動一個項目最直接的辦法就是在Openhard上建立項目。
上網時間 : 2008年01月10日
自2007年6月正式開始的覆蓋全國高校的「中國電子學會Xilinx開放源碼硬件創新大賽」初賽經過大賽組委會的認真篩選,來自34所高校的53支隊伍從170多支參賽隊伍中脫穎而出,入圍複賽階段。入圍隊伍中,大連理工,清華,電子科大, 西安電子科大等表現突出, 僅大連理工就有6支隊伍進入複賽。
開賽以來,包括清華、北大、中國電子科技大學、西安電子科技大學、中國科技大學等在內的近50所高校學生踴躍報名,共有170多只隊伍的1000多位在校研究生和博士生在導師的帶領下組隊參加了此次大賽。預賽近150個項目全部採用FPGA設計,範圍覆蓋工業控制、多媒體、通信, 消費電子等多種領域, 設計創意精彩紛呈, 充分展示了可編程技術的領域廣泛的應用。賽靈思提供的工具和FPGA系統在比賽當中一直是作為各個項目的核心技術。
「我國一直都在提倡自主知識產權創新, 創新的根本在於能夠從源頭開始」 中國電子學會秘書長劉汝林表示:「開放源碼硬件創新大賽不僅激發了中國電子界從源頭創新的熱情,而且為中國電子產業的源頭創新提供了一個參考,交流,借鑑, 提升和孵化的平台, 具有更深遠的意義
「我們非常高興賽靈思配合中國電子學會倡導的開放源碼硬件運動獲得學界和業界的廣泛關注」 中國大學計劃經理謝凱年博士說:「初賽中所湧現出的大批從源頭創新的項目和人才,不僅對電子設計行業對可編程技術的廣泛應用打開了廣闊的思路,而且對中國電子界從源頭創新的熱情也起到了積極的推動作用
據悉, 入圍隊伍只要提交SRC,BIT和完整開發文檔,並且通過組委會驗證的項目,都將獲得賽靈思公司用於複賽的相應高級開發板支持。目前已經有超過30支隊伍獲得了S3E和V2P開發板支持。由於廣大參賽者熱情高漲,賽靈思公司決定加大開發板投入力度, 預計更多的入圍隊伍可以獲得免費的開發板支持。
據介紹, 決賽預計將在2008年產4月在江蘇省無錫國家集成電路設計基地舉行。 為此,賽靈思將組織包括清華大學,浙江大,上海交通大學,東南大學,中國科技大學,西安電子科技大學,北京郵電大學,南京航空航天大學等知名高校教授以及來自於賽靈思, IBM, NI,MATHWORKS等業界知名公司的專家組成大賽評委會, 評選出最後的優勝者。此外,賽靈思還將通過相繼在上海,無錫等地建立的創新以及孵化中心,以及賽靈思亞太技術基金一起完成後續項目的評估和資助。
此次大賽的網站技術提供商EEFocus公司通過在大賽官方網站www. Openhard.org上對比賽進程的跟蹤報導以及代碼的共享為參賽者提供了一個高效、方便的參與平台。此外,專門開通的源代碼代碼管理和缺陷跟蹤平台,也使得啟動一個項目最直接的辦法就是在Openhard上建立項目。
訂閱:
文章 (Atom)