『壹』 如何在c++定義一個學生類以實現平均成績的計算和查詢功能
一.中間件的定義與作用
1.什麼是中間件?
圖片摘自公眾號「筋斗雲與自動駕駛」
筆者在交流中發現,不同的人對中間件的理解並不一樣,甚至可以說,到現在,這個概念還是模糊不清的。比如:
(1)有的人認為中間件僅指位於OS內核之上、功能軟體之下的那部分組件,為上層提供進程管理、升級管理等服務;而有的人則認為中間件還應包括功能軟體和應用軟體中間的那部分(參見上圖)。按茅海燕的說法,前者是「通用中間件」,而後者是「專用中間件」。本文中提到的「中間件」,若不做專門說明,便特指「通用中間件」。
(2)有一些人提到的自動駕駛中間件,包括了AUTOSAR(又分為AUTOSAR CP和AUTOSAR AP),還有一些人口中的中間件,特指ROS2、Cyber RT、DDS等。
(3)未動科技VP蕭猛認為,「中間」一詞是相對的,當有多層堆疊的時候,每一層都是其上下兩層的中間層,因此,在用「中間件」這個詞的時候,我們需要特別指明它究竟位於「哪兩層之間」。按蕭猛的說法,當我們稱「ROS/ROS2 為中間件」時,其含義與 「AUTOSAR AP為中間件」並不是對等的關系。
(4)Vector產品專家蔡守群說,他理解的中間件,「是給App開發提供功能支撐的,對外是沒有功能表徵的;但是站在操作系統內核的角度,中間件跟App並沒有本質的區別」。
2.中間件的作用
汪浩偉說:「專用中間件原本是應用程序的一部分,只是很多公司做自動駕駛都需要用到,就被抽象出來了。」
那麼,它究竟有什麼用?
畢曉鵬認為,自動駕駛中間件最主要的作用是:對下,它能夠去適配不同的OS內核和架構;對上,它能夠提供一個統一的標准介面,負責各類應用軟體模塊之間的通信以及對底層系統資源的調度。
據畢曉鵬解釋,前者,使開發者們無需考慮底層的OS內核是什麼,也無需考慮硬體環境是什麼,即不僅實現了應用軟體與OS的解耦,也實現了應用軟體與硬體的解耦;而後者則確保了數據能夠安全實時地傳輸、資源進行合理的調度。
為什麼要通過中間件來支持軟硬體解耦?畢曉鵬解釋道:
我開發一個應用軟體,其中很多內容都是與具體應用邏輯無關的,包括數據通信、通信安全、系統資源調度等,比如,有十個進程需要數據交互,完全沒有必要在十個程序的軟體代碼里各自進行實現和配置。針對這種情況,我們就可以把重復的部分抽象成一種服務,單獨封成一層東西(這就是中間件),並提供統一的庫、介面和配置方法,供上層去調用。這樣的話,有一部分人專門去做中間件的,而做上層應用的人也不需要考慮跟底層交互的事情。
舉例說,如果要做一個自動泊車系統,它有各個模塊或業務邏輯獨立的不同軟體,在進行通信、數據交互,或者調用底層資源時,只需要中間件的一個介面就可以實現,其他事情不需要考慮,這樣開發人員就可以專注於自己的業務邏輯。
又比如,一個攝像頭需要感知前面的車道線、紅綠燈等,開發人員就專門做紅綠燈和車道線檢測演算法,與外界的數據交互只需要使用中間件的通信服務(例如訂閱攝像頭信息,發布檢測結果),而不必關心數據從哪裡來、發給誰。
Nullmax紐勱科技系統平台總監苗乾坤博士在此前的一篇文章中寫道:
「晶元算力大幅增長,攝像頭像素呈翻倍之勢,激光雷達出現在更多新車規劃上……沒有誰能夠斷言車上的感測器應該有多少,又或者是將來的汽車還會增加哪些硬體,但所有人都知道硬體的變化將會來得更加猛烈。
「所以我們也可以看到,汽車對軟硬體架構的要求也越來越高,既要能滿足當下的需求,還要具備相當的前瞻性、兼容性和擴展性,能夠支持接下來軟硬體升級換代、增減模塊的需求。而自動駕駛的中間件,就正是這樣一個可以按需調整、滿足各樣需求的現代溫室。
「在早期開發中,中間件可以化整為零,將巨大的軟體工程分解成若干小任務,分散解決。在後期應用時,它又可以化零為整,像拼積木一樣,根據需求將一個個模塊組合成一個整體,嚴絲合縫。」
在春節前的一場直播中,東軟睿馳產品銷售總監安志鵬說,在軟硬體解耦、模塊化管理後,再遇到問題,就不用整個系統都改,只改相對應的部分就行了。這樣,軟體的可復用程度就極大地提升了,同時,驗證的工作量也會減少許多,整體開發效率也會因此提升。
相反,沒有中間件的話,應用層就得直接調用操作系統的介面,後期要是換了操作系統,應用層的代碼和演算法可能就要推倒重來。
簡言之,中間件通過對計算平台、感測器等資源進行抽象,對演算法、子系統、功能採取模塊化的管理,並提供統一介面,讓開發人員能夠專注於各自業務層面的開發,無需了解無關細節。
按東軟睿馳產品銷售總監安志鵬的說法,搞AUTSOAR這樣的中間件,並不是只對OEM有利,「零部件供應商的選擇面也大了——應用做好了,下面的軟體、晶元可以選好幾家供應商的,要比傳統的開發模式快很多,因而,零部件供應商也是受益者」。
用蕭猛的話說,中間件最直接的好處就是「為上層屏蔽底層的復雜性」,軟體開發人員可以忽略晶元、感測器等硬體的差異,從而高效、靈活地將上層應用及功能演算法在不同平台上實現、迭代、移植。蕭猛認為,中間件可以看做是自動駕駛應用背景下的一項「新基建」。
(圖片摘自馮占軍博士的《AUTOSAR對基礎軟體開發是喜還是憂?》一文。AUTOSAR只是中間件的一種,但這里寫的「AUTOSAR開發優勢」基本也適用於其他中間件。)
不過,站在開發者的角度看,中間件的意義也未必全部是正面的。如馮占軍博士在《AUTOSAR對基礎軟體開發是喜還是憂?》一文中就提到了如下兩點:
底層軟體工程師變成了工具人,「只要你去點點滑鼠,用工具配合就可以了」,很多原本由自己做的測試也改由供應商來做,進而導致工程師的成就感嚴重降低;時間久了,工程師從0到1開發的能力也會降低。
(圖片摘自馮占軍博士的文章。盡管文章說的是Autosar,但實際上這些問題在ROS等其他中間件的使用過程中也會存在。)
對軟體工程師來說,中間件造成的「能力退化」這一問題幾乎是無解的。但馮占軍博士認為,「如果這個中間件在開發過程中,有使用公司的工程師深度參與,提出需求並一起實施,會好一些」。
此外,殷瑋在一篇文章提到,使用AUTOSAR這樣的中間件,Tier 1們應該是很不情願的,「因為不到增加了成本,還有可能逐步淪為硬體生產商」。但這個也不能說是中間件的鍋,在軟體定義汽車大大趨勢下,這幾乎是必然的。
二.常見的基本概念
1. AUTOSAR CP 與 AUTOSAR AP
在所有的中間件方案中,最著名的非AUTOSAR莫屬了。
嚴格地說,AUTOSAR並非特指由某一家軟體公司開發出來的某款操作系統或中間件產品,而是由全球的主要汽車生產廠商、零部件供應商、軟硬體和電子工業等企業共同制定的汽車開放式系統架構標准。不過,在實踐中,各公司基於AUTOSAR標准開發出來的中間件也被被稱為「AUTOSAR」。
當前,AUTOSAR可分為Classic Platform和Adaptive Platform兩個平台,兩者分別被簡稱為AUTOSAR CP與AUTOSAR AP。
簡單地說,AUTOSAR CP主要跑在8bit、16bit、32bit的MCU上,對應傳統的車身控制、底盤控制、動力系統等功能,如果涉及到自動駕駛的話,AUTOSAR CP可能無法實現;而AUTOSAR AP主要跑在64bit以上的高性能MPU/SOC上,對應自動駕駛的高性能電子系統。
嚴格地說,AUTOSAR CP並不只是個「中間件」,它是相當於「OS內核+中間件」的一套完整的「操作系統」。 AUTOSAR CP定義了基本的上層任務調度、優先順序調度等。
在基於分布式架構的ADAS功能中,AUOTSAR CP便是最常見的「操作系統」。在AUTOSAR的生態形成後,很多晶元廠商的MCU上標配的就是AUTOSAR CP,主機廠沒有什麼選擇權。
由於分布式架構下的晶元主要是MCU,因此,便有了「AUTOSAR CP主要跑在MCU上」的說法。
在分布式架構下,不同的功能對應著不同的MCU,而每一個MCU上都需要跑一套AUTOSAR CP,若感測器的類型比較多,則僅ADAS相關功能就需要很多套AUTOSAR CP,那怎麼收費呢?
常規的做法是:根據MCU的類型來收費——如果MCU是兩個異構的MCU,那AUTOSAR CP就按兩套來收費;如果MCU是同構的,那AUTOSAR CP就按一套來收費。
隨著EE架構從分布式向集中式演進、晶元由MCU向SOC演進,計算量及通信量成數量級地上升,另外,多核處理器、GPU、FPGA以及專用加速器的需求,還有OTA等,都超出了AUTOSAR CP的支持范圍。
(圖片摘自安志鵬的直播課)
2017年,為更好地滿足集中式架構+SOC時代的高等級自動駕駛對中間件的需求,AUTOSAR聯盟推出了通信能力更強、軟體可配置性更靈活、安全機制要求更高的AUTOSAR AP平台。
需要強調的是,不同於AUTOSAR CP自身已經包含了基於OSEK標準的OS,AUTOSAR AP只是一個跑在Lunix、QNX等基於POSIX標準的OS上面的中間件——它自身並不包含OS。
結合aFakeProgramer於2020年發表在CSDN上的《為什麼要用AP?Adaptive AutoSAR到底給企業提供了一些什麼?》一文及東軟睿馳安志鵬在2022年春節前的一場直播中講的內容,AUTOSAR CP與AUTOSAR AP最主要的區別有如下幾點:
1).編程語言不同——AUTOSAR CP基於C語言,而AUTOSAR AP基於C++語言;
2).架構不同——AUTOSAR CP 採用的是FOA架構(function-oriented architecture),而AUTOSAR AP採用的則是SOA架構(service-oriented architecture);
3).通信方式不同——AUTOAR CP採用的是基於信號的靜態配置通信方式(LIN\CAN...通信矩陣),而AUTOSAR AP採用的是基於服務的SOA動態通信方式(SOME/IP);
4).連接關系不同——在AUTOSAR CP中,硬體資源的連接關系受限於線束的連接,而在AUTOSAR AP中,硬體資源間的連接關系虛擬化,不局限於通信線束的連接關系;
5).調度方式不同——AUTOSAR CP採用固定的任務調度配置,模塊和配置在發布前進行靜態編譯、鏈接,按既定規則順序執行,而AUTOSAR CP則支持多種動態調度策略,服務可根據應用需求動態載入,並可進行單獨更新。
6).代碼執行和地址空間不同——AUTOSAR CP中,大部分代碼靜態運行在ROM,所有application共用一個地址空間,而在AUTOSAR AP中,應用載入到RAM運行,每個application獨享(虛擬)一個地址空間。
這些區別,帶給AUTOSAR AP的優勢有如下幾點——
1).ECU更加智能:基於SOA通信使得AP中ECU可以動態的同其他ECU同其他ECU進行連接,提供或獲取服務;
2).更強大的計算能力:基於SOA架構使得AP能夠更好地支持多核、多ECU、多SoCs並行處理,從而提供更強大的計算能力;
3).更加安全:基於SOA架構使得AP中各個服務模塊獨立,可獨立載入,IAM管理訪問許可權;
4).敏捷開發:Adaptive AUTOSAR服務不局限於部署在ECU本地可分布於車載網路中,使得系統模塊可靈活部署,後期也能靈活獨立更新(FOTA);
5).高通信帶寬:可實現基於Ethernet等高通信帶寬的匯流排通信;
6).更易物聯:基於乙太網的SOA通信,更易實現無線、遠程、雲連接,方便部署V-2-X應用。
(圖片摘自東軟睿馳)
當然了,在某些方面,AUTOSAR AP與AUTOSAR CP相比是有一些「劣勢」的。比如,AUTOSAR CP的時延可低至微秒級、功能安全等級達到了ASIL-D,硬實時;而AUTOSAR AP的時延則在毫秒級,功能安全等級則為ASIL-B,軟實時。
上述區別也導致了兩者應用領域的不同:AUTOSAR CP一般應用在對實時性和功能安全要求較高、對算力要求較低的場景中,如引擎控制、制動等傳統ECU;而AUTOSAR則應用在對實時性和功能安全有一定要求,但對算力要求更高的場景中,如ADAS、自動駕駛,以及在動態部署方面追求較高自由度的信息娛樂場景。
盡管AUTOSAR AP有種種優點,但總的來說,它目前還不夠成熟——主要是信息安全及UCM等模塊不成熟。量產車上裝AUTOSAR AP的不少,但主要用在娛樂場景,真正用在自動駕駛場景的還很少。
此外,由於SOC+MCU組合的現象會長期存在,因而,在今後相當長一段時間內,AUTOSAR AP都不可能徹底取代AUTOSAR CP——最常見的分工會是,需要高算力的工作交給AUTOSAR AP,而需要高實時性的工作則交給AUTOSAR CP。
(圖片摘自超星未來)
2.ROS 2
ROS是機器人操作系統(Robot Operating System)的英文縮寫,原生的ROS本是機器人OS,並不能直接滿足無人駕駛的所有需求,用作自動駕駛中間件的是ROS 2。
ROS 2與ROS 1的主要區別如下:
(1).ROS 1主要構建於Linux系統之上,主要支持Ubuntu;ROS 2採用全新的架構,底層基於DDS(Data Distribution Service)通信機制,支持實時性、嵌入式、分布式、多操作系統,ROS 2支持的系統包括Linux、windows、Mac、RTOS,甚至是單片機等沒有操作系統的裸機。
(2).ROS 1的通訊系統基於TCPROS/UDPROS,強依賴於master節點的處理;ROS 2的通訊系統是基於DDS,取消了master,同時在內部提供了DDS的抽象層實現,有了這個抽象層,用戶就可以不去關注底層的DDS使用了哪個商家的API。
(3).ROS運行時要依賴roscore,一旦roscore出現問題就會造成較大的系統災難,同時由於安裝與運行體積較大,對很多低資源系統會造成負擔;ROS2基於DDS進行數據傳輸,而DDS基於RTPS的去中心化的通信框架,這就去除了對roscore的依賴,系統的穩定性強,對資源的消耗也得到了降低。
(4).由於ROS 缺少Qos機制,topic的穩定性與質量難以保證;ROS2則提供了Qos機制,對通信的實時性、完整性、歷史追溯等功能有了支持,這便大幅加強了框架功能,避免了高速系統難以適用等問題。
不過,ROS2的QoQ配置較為復雜,目前主要是國外一些專業的大學或實驗室在使用,國內僅有極少數公司在嘗試;此外,ROS 2的生態成熟度遠不如ROS,這也給推廣應用帶來了不便。
跟AUTOSAR AP一樣,ROS 2也是跑在soc晶元上、用於滿足高等級自動駕駛的需求的。不過,蕭猛在去年的一批文章中卻特別強調:當我們稱 「ROS/ROS2 為中間件」時,其含義與 「AUTOSAR AP為 中間件」並不是對等的關系。
蕭猛的文章稱:
當我們說 AutoSar是中間件時,這個中間件是很明確的 L.BSW層語義,即處於計算機OS與車載ECU特定功能實現之間,為 ECU功能實現層屏蔽掉特定處理器和計算機OS相關的細節,並提供與車輛網路、電源等系統交互所需的基礎服務;
ROS/ROS2 是作為機器人開發的應用框架,在機器人應用和計算機OS之間提供了通用的中間層框架和常用軟體模塊(ROS Package),而且, ROS團隊認為這個框架做得足夠好,可以稱作操作系統(OS)了。
ROS 2盡管在功能上跟AUTOSAR AP有不少重疊之處,但兩者的思路是不一樣的:
(1).從表現形式上看,AUTOSAR AP首先是一套標准,這個標準定義了一系列基礎平台組件,每個平台組件定義了對應用的標准介面,但沒有定義實現細節,和平台組件之間的交互介面(這些部分留給AUTOSAR AP供應商實現);ROS2則從一開始就是代碼優先,每個版本都有完整的代碼實現,也定義有面向應用標准API介面。
(2)AUTOSAR AP從一開始就面向ASIL-B應用;ROS 2不是根據ASIL的標准設計的,ROS 2實現功能安全的解決方案是,把底層換為滿足ASIL要求的RTOS和商用工具鏈(編譯器)。
ROS 2「過不了車規」似乎已成為一個很廣泛的行業共識。但在蕭猛看來,ROS2本來就不是為實時域設計的,如果一定要把實時性要求高的車輛控制演算法運行在 ROS2中,「那是軟體設計的錯誤,而不是ROS2的問題」。
蕭猛認為,只要能補齊 L.BSW層所需要完成的所有功能、補齊 A 軸所有切面要求的特性,ROS 2就能用於自動駕駛量產車。如前段時間剛拿到采埃孚等多家巨頭投資的Apex.AI公司基於ROS 2定製開發的Apex.OS就已經通過了最高等級的ASIL D認證。
蕭猛說:「這實際上是基於 ROS 2的架構去實現一套 AUTOSAR AP 規范。這可以成為一個單獨的產品,投入時間+人+錢可以開發出來,只是看有沒有必要,值不值得」。
在具體的實踐中,ROS 2跟AUTOSAR AP存在直接競爭關系——盡管對用戶來說,並不存在嚴格意義上的「二選一」問題,但通常來說,若選了ROS 2,就不會選AUTOSAR AP了;若選了AUTOSAR AP,就不會選ROS 2了。
3. CyberRT
Cyber RT是網路Apollo開發出來的中間件,在Apollo 3.5中正式發布。Cyber RT和ROS2是比較像的, 其底層也是使用了一個開源版本的DDS。
網路最早用的是ROS 1,但在使用的過程中逐漸發現了ROS 1存在「若ROS Master出故障了,則任何兩個節點之間的通信便受到影響」的問題,所以就希望使用一個「沒有中間節點」的通信中間件來代替ROS 1,那時還沒有ROS2,所以自己去做了一個Cyber RT。
為了解決 ROS 遇到的問題,Cyber RT刪除了master機制,用自動發現機制代替,這個通信組網機制和汽車網路CAN完全一致。此外,Cyber RT的核心設計將調度、任務從內核空間搬到了用戶空間。
(圖片出處:https://blog.csdn.net/xhtchina/article/details/118151673)
其相對於其他系統,Cyber RT的一大優勢是,專為無人架駛設計。網路已將Cyber RT開源,某互聯網巨頭的自動駕駛團隊使用的中間件便是網路開源出來的Cyber RT。
Cyber RT跟ROS 2之間也存在競爭關系。
在談到AUTOSAR AP、ROS 2與Cyber RT這些中間件的關系時,Vector產品專家蔡守群的解釋是:
「不需要很機械地去分類,你可以把AUTOSAR AP, ROS和Cyber RT都想像成一個提供一組中間件的超市,用戶可以按需從不同的超市購買,並不是說從一個超市買過一個中間件,就不能從其他超市買了。
蔡守群說:AUTOSAR AP中也包含了對ROS介面的支持。說不準哪天ROS和Cyber RT就會加入AUTOSAR AP的組件,或者 AUTOSAR AP會引入Cyber RT的組件。
4.DDS(通信中間件)
(1)什麼是DDS?
在自動駕駛領域,中間件的功能涉及到通信、模塊升級、任務調度、執行管理,但其最主要的功能就是通信。當前市場上,無論是Cyber RT還是 ROS,基本上90%的功能就是通信,狹義上說就是通信中間件。
通信中間可以分成開源和閉源的兩種。開源的為OPEN DDS、FAST DDS、Cyclone等,閉源的就RTI的DDS和Vector的SOME/IP。DDS的全稱為Data Distribution Service ,指一種數據分發服務標准,由對象管理組織(OMG)制定。
DDS能夠實現低延遲、高可靠、高實時性的數據融合服務,能夠從根本上降低軟體的耦合性、復雜性,提高軟體的模塊化特性。高等級自動駕駛現在基本上都在探索依靠DDS來解決異構通信、低時延等CP解決不了的挑戰。
融合了DDS的汽車軟體能夠更好地運行在下一代汽車的體系架構中,更能降低開發的成本、縮短研發的時間,更快地將產品推向市場。
(2)DDS與ROS 2、AUTOSAR AP之間的關系
ROS 2和Cyber RT的底層都使用了開源的DDS,將DDS作為最重要的通信機制。但也有自動駕駛公司的工程師認為,DDS可以起到替代ROS 2的作用,站在用戶的角度看,兩者之間其實存在「二選一」的關系。
AUTOSAR CP里一直沒有包含跟DDS有關的東西,但AUTOSAR AP在 2018年3月的最新版(版本18-10)里開始支持DDS標准。將DDS與AUTOSAR AP結合使用,不僅可以保證和擴展AUTOSAR AP系統內部互操作性的功能,而且還可以將其開放給來自不同的生態系統(即ROS 2)。
從工程角度來看,將AUTOSAR和DDS結合起來的最大優勢是,功能域和網路拓撲不再是對手,而是車輛中的盟友。網路拓撲結構能夠更好地適應車輛的物理約束,功能域在物理車輛的頂部提供了一個靈活的覆蓋層,這就是所謂的分區體系結構。
當然,DDS僅是通信中間件的一種。關於各類通信中間件之間的異同,我們將在本系列的第二篇做更詳細的闡釋。
三.AUTOSAR AP的地位正在弱化?
盡管AUTOSAR是當下最有名的自動駕駛中間件,但《九章智駕》在對諸多中間件廠商們的調研中得出一個結論:AUTOSAR在產業鏈中的地位可能正在弱化。 當然了,那些專注於AUTOSAR系統的廠商們並不認同這一觀點。
我們在上文已經提到,隨著EE架構從分布式向集中式演進、MCU被SOC取代,CP AUTSAR被AUTOSAR AP、ROS 2和Cyber RT等取代已是大勢所趨,在下文,我們主要談的是「AUTOSAR AP的地位會不會弱化」。
2021年12月中旬,兩家AUTOSAR發起公司大陸集團、豐田聯合採埃孚、捷豹路虎、沃爾沃、海拉等多家汽車行業龍頭企業宣布投資車載操作系統初創公司Apex.AI,而Apex.AI的主力產品Apex.OS則是基於ROS 2發展起來的。
拿到了Apex.AI公司15%股權的采埃孚方面在接受媒體采訪時說:「這意味著,我們可以為客戶提供AUTOSAR AP的替代方案。」
盡管AUTOSAR AP已經有了標准,但還沒有落地。安波福、采埃孚、大陸這些公司提供的方案,仍然是基於AUTOSAR CP標準的介面。事實上,越來越多的OEM不太想完全用AUTOSAR去解決智能駕駛操作系統的問題。
不僅特斯拉沒有用AUTOSAR AP,國內的幾大造車新勢力也沒有用(他們用的是AUTOSAR CP+DDS)。甚至,連一些正在轉型的傳統車企也沒打算用AUTOSAR AP。
從產業鏈中各方的反應來看,AUTOSAR AP「地位不穩」的原因主要有以下幾個:
1.使用成本太高
馮占軍博士在《AUTOSAR對基礎軟體開發是喜還是憂?》一文中透露,AUTOSAR的費用通常是「幾百萬起」,並且,針對不同的域控制器、不同的晶元需要「重復收費」,一般小廠根本吃不消。「可能還沒有什麼產出,幾百萬就花出去了」。
除購買成本高外,畢曉鵬和蕭猛都提到,AUTOSAR前期的學習難度很大、學習成本也非常高。為了學會如何使用AUTOSAR,企業甚至不得不專門培訓一批人,如果受培訓的人臨時離職了,那培訓費用就打了水漂。
2.效率不高
畢曉鵬認為,AUTOSAR AP的配置非常多,它是通過配置加上一部分代碼去實現自己的功能,但配置多了之後,效率不高,而且代碼臃腫。
3.靜態部署與動態部署的理念沖突
畢曉鵬博士提到,AUTOSAR AP其實是從AUTOSAR CP發展而來的,AUTOSAR CP是靜態部署,只適用於相對簡單的業務邏輯和功能,其代碼是固化的,有點像以前的功能手機——功能無法改變,不可能往裡面再加一個APP;但AUTOSAR AP有點像現在的智能手機,軟體開發人員開發一個APP,跨平台就可以用不同手機上了,這種動態部署的理念和之前的靜態部署概念不甚相同,而其方法論卻是基於靜態部署衍生而來的,因此在實踐層面會遇到不少問題。
4.無法滿足智能網聯的需求
由於雲端跟車端所使用的操作系統不一樣,AUTOSAR只能負責車內的通信,不能支持車端到雲端的通信,因而無法支持車路協同場景(車端跟雲端的通信,是通過MQTT、kafka等中間件來實現的)。除此之外,AUTOSAR能否兼容車輛網聯化中需要用到的數據平台、通信平台和地圖平台,也存在很大的疑問。
畢曉鵬說,在發現了這些問題後,有一些OEM開始逐漸放棄AUTOSAR架構,「轉而自己去研發一套更適合動態部署、成本較低的新型軟體架構」。
傳統車廠是從使用CP過來的,所以在慣性上,他們可能還會考慮AP是否適合智能駕駛,但慢慢地也在嘗試轉型。如奧迪和TTTech合作做的通信中間件——zFAS,也沒有採用AP。
不同於AUTOSAR CP已經是非常標准化的東西,大家用起來沒什麼問題,AUTOSAR AP現在的標准也不是很完善,每年也在更新,具體AP能發展成什麼樣,這個誰也不知道,大家更多也是觀望的態度。
畢曉鵬認為,AUTOSAR標准並不能很好地支撐自動駕駛應用和創新的發展,因此,我們有必要建立一套更適合中國智能駕駛發展、且自主可控的技術架構和生態體系。
蕭猛認為,由於從AUTOSAR CP到AUTOSAR AP一脈相承,一些已經對AUTOSAR形成路徑依賴的公司會堅持使用AUTOSAR AP,但在經歷過招人難、開發周期長等教訓之後,他們有可能轉向ROS 2。
當然,以AUTOSAR為主業的公司,顯然不會認可上述「涉嫌唱衰」AUTOSAR AP的觀點的。
比如,Vector蔡守群就認為,AUTOSAR AP只會越來越重要,因為它是順應車載技術不斷發展的一套規范,覆蓋面會越來越廣。
東軟睿馳茅海燕也認為,要將整車域控制器和智駕域控制器合並到統一的中央計算平台上,沒有AUTOSAR AP的支持很難搞定。「不是每家公司都能像特斯拉一樣自己從頭搭建系統的,目前,最好的工具還是AUTOSAR AP」。
『貳』 區塊鏈里程碑是什麼
區塊鏈技術服務的意義是什麼?意義有三個:
1.幫助企業更高效的解決業務痛點,更從容地應對復雜業務以及更快速地跟蹤市場變化。
2.而區塊鏈技術發展的兩個標志性里程碑,Bitcoin和Ethereum/Fabric項目的發布,將其去中心化,安全不可篡改的屬性帶入大眾視野,使很多業務問題的解決從不可能變為可能。那又為什麼是企業級區塊鏈呢?
3.近幾年我們將市面上主流的區塊鏈技術平台做了一個詳細的技術對比,發現這些平台在企業中應用還有很多問題,只有企業級區塊鏈才能應對如此海量的數據,承載復雜的業務體系。人人鏈正在做的企業級區塊鏈雲服務平台正是為了解決這些問題,通過一站式集成、持續交付、數據可視化以及支持多底層來幫助企業實現開箱即用。
Singularity區塊鏈游戲王國
Metatron作為區塊鏈技術的領域新的里程碑,在區塊鏈1.0的數字貨幣時代和區塊鏈2.0數字資產與智能合約時代的技術成熟前提下,基於區塊鏈3.0時代,將發展區塊鏈大社會的生態,使其去中心化和數據防偽功能在其他領域逐漸得到更加廣泛地應用。
Metatron項目方早已意識到,區塊鏈的應用是不應該局限於金融領域的,而是可以拓展到任何有需求的領域中去。其中最前沿的場景便是游戲平台領域。而Singularity便是一顆冉冉升起的明星現有的Singularity是一個以加密貨幣生態系統的形式發展,將貿易、投資、社交平台、市場和加密貨幣成功結合在一起的平台,目的在於打造鏈接數百萬人以管理加密貨幣市場的國際社區。《singularity》游戲是Metatron生態中重要項目之一。其中文名為奇點,是由多位計算機工程師經過核算和根據真實區塊鏈數據,運用輾轉相除法推演出的一款集娛樂、投資理財為一體的游戲。
Metatron創新引入OCPC到奇點游戲,為游戲搭建強大的造血功能,游戲收益長久且穩健,根據時間周期和市場團隊,會有一定的波動。每一個游戲玩家就是一個節點,相當於一台超級智腦中的一塊CPU,通過游戲產生區塊,生成虛擬數字資產,可以通過交易所進行交易。游戲畫面精美流暢,玩法簡單易上手。通過MTM解鎖、升級島嶼和建築,即可開始游戲,還有多種道具助力互動機制,收獲更多驚喜與收益。
單獨做游戲是無法滿足未來需求的,游戲平台建設則是攻城略地首選。普通的游戲平台機制存在封閉的缺陷,在傳統技術條件下,即使是互聯網也會存在地區國別的限制。例如,跨區消費不便,歐美區只能由美元購買,國內外的用戶無法直接通過簡單的對接進行交易,常常需要多重中介。其次,游戲平台建設中總會因為技術條件的限制,數據流的篡改使得在用戶不知情的情況下玩家作弊總無法避免。另外,游戲平台中,金融化程度開發較低,裝備的交易十分麻煩,有的游戲根本就不支持,而游戲本身也只能通過法定貨幣的方式進行銷售。再者,很多獨立開發者是游戲的創造者,即使擁有良好的創意和開發平台,但因為缺少開發資金而難以製作游戲,游戲分發平台缺少對他們的支持。
但是Metatron旗下的Singularity平台卻一舉解決了諸多難題。用戶可通過玩游戲、看廣告免費獲得生態代幣MTM。MTM可用做游戲生態建設初期通用憑證。
Singularity其特色在於AI系統擁有自己的多幣種錢包,可以存放各種數字貨幣,包括比特幣、以太坊等等。錢包支持美金充值,對接美金第三方支付,如PerfectMoney、Advcash等。系統內部「SingularityExplorer」模塊,可以非常方便舒適的實現MTN以及其他數字貨幣的交易轉換。建立投資組合之後,擁有一套非常完善而且嚴謹的市場獎勵計劃,每天可以獲取利潤分紅,並且可以當天提現,到賬迅速。在metatron的強大生態平台支撐下,提供給游戲開發商和消費者的對接服務使得溝通訴求得到了前所未有的釋放。
所以說,它近乎完美,與生俱來就已經攻克了現有平台的在安全屬性不高,金融性較低,用戶之間溝通較為閉塞等方面的缺點,就像一個綠洲,能在滿足安全合規的前提下,肆意奔跑。
總的來說,人類需求日益迫切的現代互聯網社會,一個全新的數字記錄系統,必然就有著非凡的意義。作為最新一代的虛擬貨幣的應用,其開闊的前景,正致力於建設美好的貨幣世界,並鼓勵和倡導虛擬貨幣在新技術經濟環境下的創新與發展。
不發幣、不碰ICO,螞蟻鏈靠什麼引發最大規模產業上鏈潮?本文授權轉載自品玩
不知道什麼時候開始,區塊鏈變成了一系列龐大數字的集合體。動輒數萬億美元的資產,數以十億計的節點和數億的用戶,讓這個誕生十餘年的新型技術,儼然成為了全球IT業和媒體眼中的龐然大物。
一個沒有參與過DeFi,沒有研究過DAO,沒有在咖啡館聊幾句web3,都似乎成為了互聯網人職業生涯的一種罪過。就好像一個20世紀的英國士兵,沒有踏上過大陸;或者19世紀的西班牙水手,沒有登上過美洲一樣,沒有接住上帝給予這份職業的慷慨。
在即將過去的六月里,區塊鏈世界裡發生三件有意思的事情。也許很多年後再回顧,區塊鏈技術發展史上的里程碑就暗含在其中:
美聯儲加息,帶崩了一眾加密貨幣,尤其既5月中旬被看做是穩定幣的Luna被幾乎價值清零之後,比特幣價格在6月加速下跌,整體跌去了超過75%;
6月23日,全球勢頭最盛的區塊鏈Solana,在社交媒體上官宣,表示要推出web3的智能手機「Saga」及定製的web3手機操作系統、Dapp應用商店;
這兩件web3世界的大事,被認為是在「熊市」來臨之時,軟體與硬體、應用泡沫與底層設計之間的一次勢力切換。遭遇重創的web3們,要「洗心革面」向更務實的消費者應用出發,去獲得更多真實的、有價值的客戶。而這種由虛向實、持續向實體要價值的行為,或許將成為區塊鏈度過潛在「熊市」的出路之一。
在上述區塊鏈世界的背景下,第三個事件就顯得頗具深意:
6月24日,中國最大的區塊鏈技術平台,螞蟻集團旗下的螞蟻鏈宣布,其「物理設備」的上鏈規模已經突破了500萬台。
這是全球范圍內,產業區塊鏈中「物理資產」「首次」實現如此大規模的上鏈,也是「物理資產」規模化的一次前所未有的突破。在此之前,從來沒有人能做到物理設備如此大規模的在鏈運轉。
沒錯,500萬。
你已經有多久沒有在web3世界的技術新聞里,聽到500萬這樣級別的數字了?回顧web3的發展歷史,上一次比特幣用戶突破500萬還是在2017年;而如今,這個數字已經超過了2億。其中像韓國這樣的國家,加密貨幣在年輕人總人口中的用戶比例也超過了20%。甚至一些大DAO組織、Dapp應用,都已經接近甚至超過這個數字了。
但區塊鏈技術在產業端的發展,與在消費者端不同。後者因為加密貨幣的加持,「其興也勃焉」,而前者需要了解產業的痛點、需要一個場景一個場景的推進,要下苦功夫,進入大規模商用難度更大。
這次這個產業區塊鏈的第一個500萬,可以說是一個里程碑式的數字。這意味著物理資產上鏈通過了規模化驗證——區塊鏈的一扇新門打開了。
孤獨的產業區塊鏈
首先,產業對於細分場景的要求是很高的,這意味著服務商就很難以同一套標准化的技術手段去滿足各行各業的所有需求。而無論是DeFI、DAO(註:去中心化自治組織),都可以用一個通用型的技術模型來應付足夠大的需求場景。
但對於產業區塊鏈來說,有些時候一個專門的行業場景定製化,就需要耗費大量的時間精力。以螞蟻鏈與奇瑞的合作為例,由於設備內存和帶寬的需求,螞蟻鏈需要將代碼的內存資源,從300KB壓縮到1.5KB,才能符合「車鏈」的要求。
這種「將大象塞進冰箱」級別的「變態」代碼優化需求,對於區塊鏈貨幣等開發者來說,是難以想像的。這也從側面可以說明,在產業區塊鏈中,跨鏈、跨設備的通用交互難度會有多大。
其次,產業對於鏈條的安全、穩定、經濟的要求都是極高的。這在過去幾乎就是一個「不可能三角」。
以比特幣為例,全球各大礦場為了維護比特幣世界的連續穩定可靠,每年要為這套2100萬個貨幣的加密系統,耗費超過149太瓦時的電。如果比特幣是一個國家的話,它的耗電量與越南相當,大概在全球排名第25位,相當於1.5個三峽大壩的發電量。如果按照我國8毛錢一度的社會電價均攤,一年需要1200億人民幣成本。
對於比特幣來說,只要有人埋單,游戲就可以繼續。但對於產業區塊鏈來說,絕不可能找到任何一個市場主體為這么瘋狂的運維成本埋單,即便有也不符合產業減碳的社會責任。剛性的成本收益,就是橫在產業區塊鏈頭上的一道紅線。
此外,產業對於加密的要求也非常謹慎。這是一個非常沉重的信任,因為區塊鏈背後意味著去中心化的計數方式,一旦系統被心懷不軌的黑客攻破,將帶來復雜的損失。公司以此建立的經濟模型可能會出現漏洞。
這就意味著,不同於區塊鏈貨幣分散在不同終端設備上的錢包,平台更多隻用專注於演算法。產業區塊鏈公司除了在演算法方面需要加強加密能力,還需要在信息採集建模、終端的計算設備、信息傳輸等全套設備做好加密服務。而這其中的每一個環節,又都是一個不小的、定製化的工程。
涉及到復雜的硬體場景本身就是個麻煩事兒。還是以汽車為例,車機內部有復雜的電子元器件帶來的干擾,同時還要兼顧車輛部件在行駛過程中的溫控條件。
總之,區塊鏈產業無論是實際落地難度,還是前期的技術投入成本,都與區塊鏈貨幣不在同一個等級上;但對於平台的收益來說,卻只有一個後者的一個零頭。大家都知道,將區塊鏈技術用在產業的數字化升級上是「科技向實」,是一件正確的事,但大家更清楚,這也是一件艱難的事。
區塊鏈中的「孤勇者」
「產業區塊鏈」難做的一個直接後果,就是很多頂尖人才都流向web3了。有數據統計,2021年大約有3.4萬名開發者加入到DeFi中,其中不乏有谷歌、蘋果、臉書等頭部互聯網公司的員工全職加入。
相比於web3的百花齊放,產業區塊鏈的動態顯然是有點冷清了。一方面很多大型科技公司看不上這些不賺錢的「臟活累活」,另一方面初創團隊又難以支撐起巨大的沉沒成本和昂貴的市場教育費用。在全球范圍的產業區塊鏈領域,至今也沒有什麼像樣的獨角獸。
然而產業區塊鏈雖然困難重重,但是產業端問題卻不會因為開發者的逃離而消失。
在很多產業場景中,區塊鏈依然是被視作打通產業中數據壁壘的最佳解決方案。
以商品的物流體系為例,我國幾乎兼有著全球最細分的製造業基地與全球最復雜的商品流通市場。這種「復雜性」一方面當然是零售業態的多樣性的結果,另一方面也要歸咎於流通信息的不透明。一件產品從原材料、廠家、經銷商、物流商、銷售終端,其全鏈路的數據是斷開的,在各個節點形成了細碎的信息孤島。每年大的消費品牌商都要花費上千萬的咨詢費,去獲取由笨重人工成本所獲得的顆粒度很粗的中國零售數據。
畢竟任何一個中心化的數據中心,都沒有辦法解決如此復雜的數據流通問題,但產業區塊鏈可以做到。
又或者以我國大能源產業網路為例,電網本身就是一個超級龐大的分布式計算系統,尤其是近年來我國著重發展分布式光伏發電產業以來,這種分布式的趨勢會更加增強;另一方面,在使用端,新能源汽車、換電站、超充樁、電池所形成的新興消費網路也天然是一個分布式的形態。
這其中的參與主體、數據類型都紛繁復雜,最好的方式自然是用分布式的計算網路去應對分布式的算力需求。
從商業常識的角度來說,大問題與大機會常常是劃等號的。又或者源自一個中國IT人很樸素的理念,畢竟問題擺在那裡,總要有人去做的。盡管這種堅守,相比於web3的大潮洶涌,顯得有點孤獨,這可能是一個逃不掉的必然。大概就像某位商業大佬流傳甚廣的一句名言:
「孤獨有些時候價值連城」。
所以依然有很多中國的產業區塊鏈公司在堅守,洗去了估值神話的光環,他們在共同等一個明天。
這次被披露的「螞蟻鏈」超過500萬物理設備上鏈的里程碑,其實就是專注在新能源產業中的「上鏈」,覆蓋新能源車、太陽能光伏、新能源電池等多個產業。在頂級產業鏈上,建立頂級的產業區塊鏈,這或許是未來中國區塊鏈產業的重要趨勢。
顯然,「螞蟻鏈們」正在嘗試接下了時代交給自己的這一棒。當哥倫布發現美洲大陸的時候,去美洲最多的人是試圖殖民和淘金;但哥倫布自己,卻執著地去探索了中美洲、又在第三次航行中發現了南美洲。
哥倫布可能不是那個時代最富有的人,但卻是世界會記住的名字。
為什麼是「螞蟻鏈」
很多人不知道的是,螞蟻集團已經連續多年是全球區塊鏈行業最大的專利輸出者。一方面,螞蟻確實在區塊鏈上有很堅定的投入;另一方面,這也和螞蟻鏈要做的事情確實很多不無關系。
如果你仔細了解「螞蟻鏈」,你可能會驚嘆於這家公司的全方位、無死角的投入,幾乎以一己之力在「產業區塊鏈」的低谷時期,在行業中孤身種植了一片大森林。這大概就像劉瑜所說的,「把一個人活成一支隊伍」。
螞蟻鏈之所以能夠率先完成500萬物理設備的上線,就離不開這種全方位的技術布局能力。
比如物理設備上鏈,中間會涉及到很多IOT技術的通信協同。
而早在2021年6月,螞蟻鏈推出首批無線通信模組AntChainMaaS,通過基於設備唯一特徵的可信根,讓終端設備自動連接區塊鏈,並進行全流程加密。7月,螞蟻鏈方面又接著發布了高速通信網路BTN(BlockchainTransmissionNetwork),成為一種高吞吐量、低帶寬成本的區塊鏈「高速公路」。
這種數據可信上鏈的技術、大寬頻條件下的吞吐能力,基本為後來大規模的物理設備上線做好了前期的通信准備。
不過這只是螞蟻鏈眾多技術儲備中的一個小試牛刀。
而這些成就和創新技術,都是在「產業區塊鏈」被大眾忽視的2021年中達成的。這些在底層技術上的投入,一方面幫助了螞蟻鏈在全球范圍達成第一個「物理設備」500萬上鏈的成績;另一方面,也預示著500萬也只是一個開始,就像2017年的比特幣一樣。
所以,當人們還在討論Solana等新公鏈,相比於比特幣和以太坊有什麼帶寬和延展性優勢的時候,螞蟻鏈已經做到了雙十億級別的上鏈能力——支持10億賬戶規模、支持每日10億交易量、實現每秒10萬筆跨鏈信息處理能力(PPS)
而當黑客在攻擊普通用戶的比特幣錢包,而web3至今沒有硬體方案,而對此無能為力的時候。螞蟻鏈已經從系統架構、終端、再到晶元,重新設計了一整套的產業互聯網的加密系統。
而在這個過程中,這個全球最大的區塊鏈專利輸出者,沒有支持過一個ICO、沒有發過一個幣。他們站著就把產業區塊鏈給做了。
其實區塊鏈本身就是一個基於信任而產生效率的事情,正如螞蟻鏈負責人蔣國飛反復對媒體說的,「區塊鏈是一種深層次的信任連接技術,(它的使命)是各行各業更好的鏈接與全新的價值流轉。」
這是區塊鏈的第一個500萬,卻是一個完全不同於過去認知的500萬,它是一群孤獨的中國IT人打開未來產業的一扇門。
里程碑指的是什麼?里程碑指的有三種意思:
1、一般是指建立在道路旁邊刻有數字的固定標志,通常每隔一段路便設立一個,以展示其位置及與特定目的地的距離。昔日里程碑是一塊石碑,現在大多改用金屬板。馬路、山路、鐵路均可能會設有里程碑。
2、里程碑一般是項目中完成階段性工作的標志,標志著上一個階段結束、下一個階段開始,將一個過程性的任務用一個結論性的標志來描述,明確任務的起止點。一系列的起止點就構成了引導整個項目進展的里程碑。里程碑定義了當前階段完成的標准和下一新階段啟動的條件和前提。
3、里程碑的另一種含義,是指某種重大標志性事件,或發生某種特定意義的典型事件,或具有開創性意義的重大事件,或具有重大學術理論意義的公認事件等。
里程碑時間界定
里程碑可用於工廠「問題解決」中的工作計劃,也就是說對負責人的時間節點的界定。提醒團隊中的成員遵守原則,注意自己工作計劃中的節點。
里程碑在項目管理過程中的定義為一個狀態點,代表在此時間點能夠達到此狀態,並非一個時間段。在項目計劃的歷時(ration)中通常標識為0天(days)。
什麼可謂區塊鏈發展的里程碑智能合約。
智能合約是基於這些可信的不可篡改的數據,可以自動化的執行一些預先定義好的規則和條款,允許在沒有第三方的情況下進行可信交易,這些交易可追蹤且不可逆轉。智能合約概念於1995年由NickSzabo首次提出。智能合約的目的是提供優於傳統合約的安全方法,並減少與合約相關的其他交易成本。
(2)除法算力怎麼寫擴展閱讀
數字形式意味著合約不得不寫入計算機可讀的代碼中。這是必須的,因為只要參與方達成協定,智能合約建立的權利和義務,是由一台計算機或者計算機網路執行的。
更進一步地說明:
(1)達成協定
智能合約的參與方什麼時候達成協定,答案取決於特定的智能合約實施。一般而言,當參與方通過在合約宿主平台上安裝合約,致力於合約的執行時,合約就被發現了。
(2)合約執行
「執行」的真正意思也依賴於實施。一般而言,執行意味著通過技術手段積極實施。
(3)計算機可讀的代碼
另外,合約需要的特定「數字形式」非常依賴於參與方同意使用的協議。
『叄』 什麼x20=780
應該就是780÷20=39…
利用除法計算。
『肆』 一道數學題,讓晶元巨頭虧了5億美金
1993年,CPU 巨頭Intel推出了Pentium處理器。
新的品牌順利地擺脫了AMD等公司對286,386,486等數字系列的品牌「抄襲」,樹立了全新的領先者的形象。
再加上90年代初斥巨資成功推進的Intel Inside計劃, Intel 成功地從一家主要向電腦製造商供貨的公司,轉變成一家直接面向消費者的品牌。
不知道哪位天才把Pentium翻譯成霸氣的「奔騰」,真是驚艷全場的神來之筆。
新產品,新品牌,Intel 可謂意氣風發,准備一統天下。
但誰也沒想到的是,這個被寄予厚望的CPU內部居然隱藏著一個Bug!
Bug被發現的過程也頗為傳奇,我們得從數學上的一個概念說起。
早在希臘時代,歐幾里得就已經證明質數有無窮多個,並且數字越大,質數分布得越稀疏。
神奇的是,盡管分布得很稀疏,但只要出現一個質數,就可以在附近找到另外一個, 例如41 和 43、101 和 103、10007 和 10009,他們之間相差都是2。
數學家給這些相差為2的連續質數起了一個名稱: 孿生質數。
1919年,挪威數學家 Viggo Brun證明了一件有趣的事情,就算有無窮多的孿生質數,它們倒數的和會收斂於一個常數,這個常數被稱為「 布朗常數 」。
但是讓數學家頭疼的是:他們不知道這個布朗常數是不是無理數。
隨著計算機的出現,有些人就想到一個招數:用計算機強大的算力,暴力求解。
美國 Lynchburg College 的數學教授Thomas Nicely就是其中的一員,他的實驗室恰巧裝備了新的奔騰計算機。
嚴謹的Nicely為了防止算錯,用了兩種演算法做雙保險,如果答案不同,肯定是某個地方出了問題。
Nicely滿懷希望地開始了計算,可是結果讓他失望:兩種演算法的結果真的不一樣!
深入研究以後,Nicely發現:824 633 702 441和824 633 702 443這兩個孿生質數,它們的倒數的小數點後的第10位被算錯了!
Nicely換了一台老舊的486電腦來計算,答案算對了。
他再用奔騰電腦來重新計算,錯誤重現。
到底是自己的程序寫錯了?還是電腦的問題?
Nicely開始做排除法, 排除自己代碼的錯誤,Borland編譯器的錯誤,晶元組的錯誤,花了整整4個月的時間 ,終於找到了Bug的起源地: 奔騰CPU 。
1994年10月24號,Nicely打電話給Intel的技術支持部門,告知他們這個問題,Intel說幾天內就會有回復,但是從此杳無音信。
原因很簡單,Intel早在1994年6月就知道了這個問題:浮點除法運算(FDIV)出錯。
奔騰CPU的FDIV引入了一種全新的、快速的實現方法,使用了一個2048項的硬體查找表,但是由於意外,有5個值沒有被正確地設置,他們本應該是2,但是卻設置成了0。
這個Bug只有在高精度計算的時候才會被觸發,普通用戶很難碰到,Byte雜志估計,出錯的概率是90億分之一。
既然影響不大,Intel的選擇是:隱瞞,悄悄修復,不公布任何細節。
畢竟已經售出幾百萬片CPU了,大規模召回損失太大。
又不是不能用!
收不到迴音的Nicely很不爽,10月30號,他開始給一些IT著名人士和雜志發郵件,包括Byte雜志,PC Week,InfoWorld,PC Magazine。
這件事情很快在網路上發酵,一大批牛人開始了問題定位的接力賽:
第一棒選手是上面提到的Nicely。
第二棒則是挪威的Terje Mathis,他很快確認了Nicely的問題,並且寫了一個簡單的匯編測試程序,發到了comp.sys.intel新聞組中(沒錯,那時候別說社交網路了,就連BBS還不流行)
第三棒是德國的Andreas Kaiser ,他找到了24個數字,它們的倒數在奔騰CPU只能得到單精度的結果。
第四棒是一位設計FPU(floating-point-unit)的專業人士,加州Vitesse半導體設計師Tim Coe。
他根據24個數字的線索,推測出奔騰CPU採用了基數為 4 的 SRT 演算法,每個時鍾周期可以生成兩位的商,使得速度比原來快兩倍。
事實也確實如此,內部專業人士的確厲害。
到了第五棒,一個超級大牛出現了,MATLAB之父:Cleve Moler
Moler總結了之前的數據,找到了Bug的規律。
可見犯了錯誤以後,想捂是捂不住的,你越想捂,這世界上越有人要把你扒個底朝天。
但是到目前為止,Intel奔騰這個硬體Bug還主要在 科技 圈中轉悠,破圈還需要等待一個重要時刻。
1994年11月24號,JPL(噴氣推進實驗室,錢學森是重要創始人)有兩名工程師得知了這個Bug,建議實驗室停購奔騰電腦。
奔騰CPU這個本來很難出現的Bug一下子成為街頭巷尾的熱議話題。
在媒體的重壓之下,Intel終於承認了浮點計算的漏洞,但依然嘴硬,它聲稱並不嚴重, 並且只給那些能證明自己受到影響的用戶更換CPU 。
這種想矇混過關的處理態度引發眾怒,動搖了消費者對Intel CPU的信心。
其他廠商也順時而動,IBM暫停銷售裝有Intel CPU的個人電腦,導致Intel股票大幅下跌。
1994年12月,撐不住的Intel終於宣布:召回所有有缺陷的處理器。
這也是 歷史 上第一次全面召回計算機晶元。
Intel為此付出的代價是:4.75億美元,名譽的損失更是難以估量。
故事到此並沒有結束。
照理說硬體出了問題,無法修改,只能替換。
但是不要忘了我們剛提到的那一群天才,MATLAB之父Cleve Moler ,Tim Coe,阿貢國家實驗室的 Peter Tang 以及來英特爾的幾位工程師,他們通力合作,在12月5號居然開發出了一個非常巧妙的軟體修復辦法。
細節這里就不贅述了,大概是:在特定情況下,將被除數和除數都乘以15/16,就可以進入安全狀態。
這個修復辦法被發到新聞組中,讓所有人免費使用。
精明的Cleve Moler讓公司發布了一個可以檢測和糾正除法錯誤的MATLAB版本,並且立刻發了一個新聞稿《MathWorks修復了Intel奔騰浮點數Bug》。
就在奔騰的Bug鬧得沸沸揚揚,全國知的時候,新聞稿出現在了美國各大媒體的傳真機上。
Cleve Moler成功地實施了一次完美營銷,這一年,他的公司MathWorks只是一家不到250人的小公司,隨後便走上了快車道,成為這一領域的巨頭。
『伍』 三位數除以一位數口算
三位數除以一位數口算如下:
60÷2=30
第一種演算法:60看作6個十,把6個十平均分成2份,每份是3個十,3個十就是30.
第二種演算法:先算6÷2=3,60÷2=30.這種演算法也是把60看作6個十,這種演算法的算力就是第一種演算法。
口算除法:
一、整十、整百數或幾百幾十數除以一位數的口算方法:
(1)利用表內除法口算:用被除數前一位或前兩位的數除以一位數,算出結果後,被除數的末尾還剩幾個0,就在上的末尾添幾個0。
(2)利用「相乘法算除法」口算:想一位數乘幾等於被除數,乘幾商就是幾。
(3)利用數的組成口算。
二、兩位數除以一位數的口算方法:
(1)利用「相乘法算除法」口算:想一位數乘幾等於被除數,乘幾商就是幾。
(2)利用數的組成口算:先把被除數分成一個整十數和一個一位數,再用分成的兩個數分別除以除數,最後把兩次除得的商加起來。
『陸』 三位數除以一位數口算
三位數除以一位數口算如下:
60÷2=30
第一種演算法:60看作6個十,把6個十平均分成2份,每份是3個十,3個十就是30.
第二種演算法:先算6÷2=3,60÷2=30.這種演算法也是把60看作6個十,這種演算法的算力就是第一種演算法。
口算除法:
一、整十、整百數或幾百幾十數除以一位數的口算方法:
(1)利用表內除法口算:用被除數前一位或前兩位的數除以一位數,算出結果後,被除數的末尾還剩幾個0,就在上的末尾添幾個0。
(2)利用「相乘法算除法」口算:想一位數乘幾等於被除數,乘幾商就是幾。
(3)利用數的組成口算。
二、兩位數除以一位數的口算方法:
(1)利用「相乘法算除法」口算:想一位數乘幾等於被除數,乘幾商就是幾。
(2)利用數的組成口算:先把被除數分成一個整十數和一個一位數,再用分成的兩個數分別除以除數,最後把兩次除得的商加起來。