Ⅰ 計算機的體系結構,組成和實現各自處理哪些方面的問題
計算機體系結構(ComputerArchitecture)是程序員所看到的計算機的屬性,即概念性結構與功能特性。按照計算機系統的多級層次結構,不同級程序員所看到的計算機具有不同的屬性。一般來說,低級機器的屬性對於高層機器程序員基本是透明的,通常所說的計算機體系結構主要指機器語言級機器的系統結構。經典的關於「計算機體系結構(computerarchitecture)」的定義是1964年C.M.Amdahl在介紹IBM360系統時提出的,其具體描述為「計算機體系結構是程序員所看到的計算機的屬性,即概念性結構與功能特性」 。
計算機體系結構
2基本概念編輯
計算機體系結構就是指適當地組織在一起的一系列系統元素的集合,這些系統元素互相配合、相互協作,通過對信息的處理而完成預先定義的目標。通常包含的系統元素有:計算機軟體、計算機硬體、人員、資料庫、文檔和過程。其中,軟體是程序、資料庫和相關文檔的集合,用於實現所需要的邏輯方法、過程或控制;硬體是提供計算能力的電子設備和提供外部世界功能的電子機械設備(例如感測器、馬達、水泵等);人員是硬體和軟體的用戶和操作者;資料庫是通過軟體訪問的大型的、有組織的信息集合;文檔是描述系統使用方法的手冊、表格、圖形及其他描述性信息;過程是一系列步驟,它們定義了每個系統元素的特定使用方法或系統駐留的過程性語境。
計算機體系結構
38種屬性編輯
1·機內數據表示:硬體能直接辨識和操作的數據類型和格式
計算機體系結構
2·定址方式:最小可定址單位、定址方式的種類、地址運算
3·寄存器組織:操作寄存器、變址寄存器、控制寄存器及專用寄存器的定義、數量和使用規則
4·指令系統:機器指令的操作類型、格式、指令間排序和控制機構
5·存儲系統:最小編址單位、編址方式、主存容量、最大可編址空間
6·中斷機構:中斷類型、中斷級別,以及中斷響應方式等
7·輸入輸出結構:輸入輸出的連接方式、處理機/存儲器與輸入輸出設備間的數據交換方式、數據交換過程的控制
8·信息保護:信息保護方式、硬體信息保護機制。
4發展歷程編輯
計算機系統已經經歷了四個不同的發展階段。
計算機體系結構
第一階段
60年代中期以前,是計算機系統發展的早期時代。在這個時期通用硬體已經相當普遍,軟體卻是為每個具體應用而專門編寫的,大多數人認為軟體開發是無需預先計劃的事情。這時的軟體實際上就是規模較小的程序,程序的編寫者和使用者往往是同一個(或同一組)人。由於規模小,程序編寫起來相當容易,也沒有什麼系統化的方法,對軟體開發工作更沒有進行任何管理。這種個體化的軟體環境,使得軟體設計往往只是在人們頭腦中隱含進行的一個模糊過程,除了程序清單之外,根本沒有其他文檔資料保存下來。
第二階段
從60年代中期到70年代中期,是計算機系統發展的第二代。在這10年中計算機技術有了很大進步。多道程序、多用戶系統引入了人機交互的新概念,開創了計算機應用的新境界,使硬體和軟體的配合上了一個新的層次。實時系統能夠從多個信息源收集、分析和轉換數據,從而使得進程式控制制能以毫秒而不是分鍾來進行。在線存儲技術的進步導致了第一代資料庫管理系統的出現。計算機系統發展的第二代的一個重要特徵是出現了「軟體作坊」,廣泛使用產品軟體。但是,「軟體作坊」基本上仍然沿用早期形成的個體化軟體開發方法。隨著計算機應用的日益普及,軟體數量急劇膨脹。在程序運行時發現的錯誤必須設法改正;用戶有了新的需求時必須相應地修改程序;硬體或操作系統更新時,通常需要修改程序以適應新的環境。上述種種軟體維護工作,以令人吃驚的比例耗費資源。更嚴重的是,許多程序的個體化特性使得它們最終成為不可維護的。「軟體危機」就這樣開始出現了。1968年北大西洋公約組織的計算機科學家在聯邦德國召開國際會議,討論軟體危機課題,在這次會議上正式提出並使用了「軟體工程」這個名詞,一門新興的工程學科就此誕生了。
第三階段
計算機系統發展的第三代從20世紀70年代中期開始,並且跨越了整整10年。在這10年中計算機技術又有了很大進步。分布式系統極大地增加亍計算機系統的復雜性,區域網、廣域網、寬頻數字通信以及對「即時」數據訪問需求的增加,都對軟體開發者提出了更高的要求。但是,在這個時期軟體仍然主要在工業界和學術界應用,個人應用還很少。這個時期的主要特點是出現了微處理器,而且微處理器獲得了廣泛應用。以微處理器為核心的「智能」產品隨處可見,當然,最重要的智能產品是個人計算機。在不到10年的時間里,個人計算機已經成為大眾化的商品。
在計算機系統發展的第四代已經不再看重單台計算機和程序,人們感受到的是硬體和軟體的綜合效果。由復雜操作系統控制的強大的桌面機及區域網和廣域網,與先進的應用軟體相配合,已經成為當前的主流。計算機體系結構已迅速地從集中的主機環境轉變成分布的客戶機/伺服器(或瀏覽器/伺服器)環境。世界范圍的信息網為人們進行廣泛交流和資源的充分共享提供了條件。軟體產業在世界經濟中已經佔有舉足輕重的地位。隨著時代的前進,新的技術也不斷地涌現出來。面向對象技術已經在許多領域迅速地取代了傳統的軟體開發方法。
總結
軟體開發的「第四代技術」改變了軟體界開發計算機程序的方式。專家系統和人工智慧軟體終於從實驗室中走出來進入了實際應用,解決了大量實際問題。應用模糊邏輯的人工神經網路軟體,展現了模式識別與擬人信息處理的美好前景。虛擬現實技術與多媒體系統,使得與用戶的通信可以採用和以前完全不同的方法。遺傳演算法使我們有可能開發出駐留在大型並行生物計算機上的軟體。
5基本原理編輯
計算機體系結構解決的是計算機系統在總體上、功能上需要解決的問題,它和計算機組成、計算機實現是不同的概念。一種體系結構可能有多種組成,一種組成也可能有多種物理實現。
計算機系統結構的邏輯實現,包括機器內部數據流和控制流的組成以及邏輯設計等。其目標是合理地把各種部件、設備組成計算機,以實現特定的系統結構,同時滿足所希望達到的性能價格比。一般而言,計算機組成研究的范圍包括:確定數據通路的寬度、確定各種操作對功能部件的共享程度、確定專用的功能部件、確定功能部件的並行度、設計緩沖和排隊策略、設計控制機構和確定採用何種可靠技術等。計算機組成的物理實現。包括處理機、主存等部件的物理結構,器件的集成度和速度,器件、模塊、插件、底板的劃分與連接,專用器件的設計,信號傳輸技術,電源、冷卻及裝配等技術以及相關的製造工藝和技術。
6分類編輯
Flynn分類法
1966年,Michael.J.Flynn提出根據指令流、數據流的多倍性(multiplicity)特徵對計算機系統進行分類,定義如下。
·指令流:機器執行的指令序列
計算機體系結構
·數據流:由指令流調用的數據序列,包括輸入數據和中間結果
·多倍性:在系統性能瓶頸部件上同時處於同一執行階段的指令或數據的最大可能個數。
Flynn根據不同的指令流-數據流組織方式把計算機系統分為4類。
1·單指令流單數據流(,SISD)
SISD其實就是傳統的順序執行的單處理器計算機,其指令部件每次只對一條指令進行解碼,並只對一個操作部件分配數據。
2·單指令流多數據流(,SIMD)
SIMD以並行處理機為代表,結構如圖,並行處理機包括多個重復的處理單元PU1~PUn,由單一指令部件控制,按照同一指令流的要求為它們分配各自所需的不同的數據。
3·多指令流單數據流(,MISD)
MISD的結構,它具有n個處理單元,按n條不同指令的要求對同一數據流及其中間結果進行不同的處理。一個處理單元的輸出又作為另一個處理單元的輸入。
4·多指令流多數據流(,MIMD)
MIMD的結構,它是指能實現作業、任務、指令等各級全面並行的多機系統,多處理機就屬於MIMD。(2)
馮式分類法
1972年馮澤雲提出用最大並行度來對計算機體系結構進行分類。所謂最大並行度Pm是指計算機系統在單位時間內能夠處理的最大的二進制位數。設每一個時鍾周期△ti內能處理的二進制位數為Pi,則T個時鍾周期內平均並行度為Pa=(∑Pi)/T(其中i為1,2,…,T)。平均並行度取決於系統的運行程度,與應用程序無關,所以,系統在周期T內的平均利用率為μ=Pa/Pm=(∑Pi)/(T*Pm)。用最大並行度對計算機體系結構進行的分類。用平面直角坐標系中的一點表示一個計算機系統,橫坐標表示字寬(N位),即在一個字中同時處理的二進制位數;縱坐標表示位片寬度(M位),即在一個位片中能同時處理的字數,則最大並行度Pm=N*M。
由此得出四種不同的計算機結構:
①字串列、位串列(簡稱WSBS)。其中N=1,M=1。
②字並行、位串列(簡稱WPBS)。其中N=1,M>1。
③字串列、位並行(簡稱WSBP)。其中N>1,M=1。
④字並行、位並行(簡稱WPBP)。其中N>1,M>1。
7技術革新編輯
計算機體系結構以圖靈機理論為基礎,屬於馮·諾依曼體系結構。本質上,圖靈機理論和馮·諾依曼體系結構是一維串列的,而多核處理器則屬於分布式離散的並行結構,需要解決二者的不匹配問題。
首先,串列的圖靈機模型和物理上分布實現的多核處理器的匹配問題。圖靈機模型意味著串列的編程模型。串列程序很難利用物理上分布實現的多個處理器核獲得性能加速.與此同時,並行編程模型並沒有獲得很好的推廣,僅僅局限在科學計算等有限的領域.研究者應該尋求合適的機制來實現串列的圖靈機模型和物理上分布實現的多核處理器的匹配問題或縮小二者之間的差距,解決「並行程序編程困難,串列程序加速小」的問題。
計算機體系結構
在支持多線程並行應用方面,未來多核處理器應該從如下兩個方向加以考慮。第一是引入新的能夠更好的能夠表示並行性的編程模型。由於新的編程模型支持編程者明確表示程序的並行性,因此可以極大的提升性能。比如Cell處理器提供不同的編程模型用於支持不同的應用。其難點在於如何有效推廣該編程模型以及如何解決兼容性的問題。第二類方向是提供更好的硬體支持以減少並行編程的復雜性。並行程序往往需要利用鎖機制實現對臨界資源的同步、互斥操作,編程者必須慎重確定加鎖的位置,因為保守的加鎖策略限制了程序的性能,而精確的加鎖策略大大增加了編程的復雜度。一些研究在此方面做了有效的探索。比如,SpeculativeLockElision機制允許在沒有沖突的情況下忽略程序執行的鎖操作,因而在降低編程復雜度的同時兼顧了並行程序執行的性能。這樣的機制使得編程者集中精力考慮程序的正確性問題,而無須過多地考慮程序的執行性能。更激進的,(TCC)機制以多個訪存操作(Transaction)為單位考慮數據一致性問題,進一步簡化了並行編程的復雜度。
主流的商業多核處理器主要針對並行應用,如何利用多核加速串列程序仍然是一個值得關注的問題。其關鍵技術在於利用軟體或硬體自動地從串新程序中派生出能夠在多核處理器上並行執行的代碼或線程。多核加速串列程序主要有三種方法,包括並行編譯器、推測多線程以及基於線程的預取機制等。在傳統並行編譯中,編譯器需要花費很大的精力來保證擬劃分線程之間不存在數據依賴關系。編譯時存在大量模糊依賴,尤其是在允許使用指針(如C程序)的情況下,編譯器不得不採用保守策略來保證程序執行的正確性。這大大限制了串列程序可以挖掘的並發程度,也決定了並行編譯器只能在狹窄范圍使用。為解決這些問題,人們提出推測多線程以及基於線程的預取機制等。然而,從這種概念提出到現在為止,這個方向的研究大部分局限於學術界,僅有個別商業化處理器應用了這種技術,並且僅僅局限於特殊的應用領域。我們認為動態優化技術和推測多線程(包括基於線程的預取機制)的結合是未來的可能發展趨勢。
馮·諾依曼體系結構的一維地址空間和多核處理器的多維訪存層次的匹配問題。本質上,馮·諾依曼體系結構採用了一維地址空間。由於不均勻的數據訪問延遲和同一數據在多個處理器核上的不同拷貝導致了數據一致性問題。該領域的研究分為兩大類:一類研究主要是引入新的訪存層次。新的訪存層次可能採用一維分布式實現方式。典型的例子是增加分布式統一編址的寄存器網路。全局統一編址的特性避免了數據一致性地考慮。同時,相比於傳統的大容量cache訪問,寄存器又能提供更快的訪問速度。TRIPS和RAW都有實現了類似得寄存器網路。另外,新的訪存層次也可以是私有的形式。比如每個處理器和都有自己私有的訪存空間。其好處是更好的劃分了數據存儲空間,已洗局部私有數據沒有必要考慮數據一致性問題。比如Cell處理器為每個SPE核設置了私有的數據緩沖區。另一類研究主要涉及研製新的cache一致性協議。其重要趨勢是放鬆正確性和性能的關系。比如推測Cache協議在數據一致性未得到確認之前就推測執行相關指令,從而減少了長遲訪存操作對流水線的影響。此外,TokenCoherence和TCC也採用了類似的思想。程序的多樣性和單一的體系結構的匹配問題。未來的應用展現出多樣性的特點。一方面,處理器的評估不僅僅局限於性能,也包括可靠性,安全性等其他指標。另一方面,即便考慮僅僅追求性能的提高,不同的應用程序也蘊含了不同層次的並行性。應用的多樣性驅使未來的處理器具有可配置、靈活的體系結構。TRIPS在這方面作了富有成效的探索,比如其處理器核和片上存儲系統均有可配置的能力,從而使得TRIPS能夠同時挖掘指令級並行性、數據級並行性及指令級並行性。
多核和Cell等新型處理結構的出現不僅是處理器架構歷史上具有里程碑式的事件,對傳統以來的計算模式和計算機體系架構也是一種顛覆
2005年,一系列具有深遠影響的計算機體系結構被曝光,有可能為未來十年的計算機體系結構奠定根本性的基礎,至少為處理器乃至整個計算機體系結構做出了象徵性指引。隨著計算密度的提高,處理器和計算機性能的衡量標准和方式在發生變化,從應用的角度講,講究移動和偏向性能兩者已經找到了最令人滿意的結合點,並且有可能引爆手持設備的急劇膨脹。盡管現在手持設備也相對普及,在計算能力、可擴展性以及能耗上,完全起到了一台手持設備應該具備的作用;另一方面,講究性能的伺服器端和桌面端,開始考慮減少電力消耗趕上節約型社會的大潮流。
Cell本身適應這種變化,同樣也是它自己創造了這種變化。因而從它開始就強調了不一樣的設計風格,除了能夠很好地進行多倍擴展外,處理器內部的SPU(SynergisticProcessorUnit協同處理單元)具有很好的擴展性,因而可以同時面對通用和專用的處理,實現處理資源的靈活重構。也就意味著,通過適當的軟體控制,Cell能應付多種類型的處理任務,同時還能夠精簡設計的復雜。
Ⅱ 可編程式控制制器的工作原理是什麼
可編程式控制制器的基本工作原理:
可編程式控制制器(PLC)的工作有兩個要點:入出信息變換、可靠物理實現,入出信息變換主要由運行存儲於PLC內存中的程序實現。這程序既有系統的(這程序又稱監控程序,或操作系統),又有用戶的。系統程序為用戶程序提供編輯與運行平台,同時,還進行必要的公共處理,如自檢,I/O刷新,與外設、上位計算機或其它PLC通訊等處理。用戶程序由用戶按照控制的要求進行設計。什麼樣的控制,就有什麼樣的用戶程序。
可靠物理實現主要通過輸入(I,INPUT)及輸出(O,OUTPUT)電路。每一輸入點或輸出點就有一個I或O電路。而且,總是把若干個這樣電路集成在一個模塊(或箱體)中,然後再由若干個模塊(或箱體)集成為PLC完整的I/O系統(電路)。盡管這些模塊相當多,佔了PLC體積的大部分,但由於它們都是由高度集成化的,所以,PLC的體積還是不太大的。
輸入電路時刻監視著輸入點的(通、ON或斷、OFF)狀態,並將此狀態暫存於它的輸入暫存器(還可能有別的稱謂)中。每一輸入點都有一個與其對應的輸入暫存器。
輸出電路有輸出鎖存器(還可能有別的稱謂)。它也有兩個狀態,高、低電位狀態,並可鎖存。同時,它還有相應的物理電路,可把這個高、低電位的狀態傳送給輸出點。每一輸出點都有一個與其對應的輸出鎖存器。
這里的輸入暫存器及輸出鎖存器實際是PLC的I/O電路的寄存器。它們與PLC內存交換信息通過PLC I/O匯流排及運行PLC的系統程序實現。
把輸入暫存器的信息讀到PLC的內存中,稱輸入刷新。PLC內存有專門開辟的存放輸入信息的映射區。這個區的每一對應位(bit)稱為輸入繼電器,或稱軟觸點,或稱為過程映射輸入寄存器(the process-image input register)。這些位(bit)置成1,表示觸點通,置成0為觸點斷。由於它的狀態是由輸入刷新得到的,所以,它反映的就是輸入點的狀態。
輸出鎖存器與PLC內存中的輸出映射區也是對應的。一個輸出鎖存器也有一個內存位(bit)與其對應,這個位稱為輸出繼電器,或稱輸出線圈,或稱為過程映射輸出寄存器(the process-image output register)。通過PLC I/O匯流排及運行系統程序,輸出繼電器的狀態將映射給輸出鎖存器。這個映射的完成也稱輸出刷新。
PLC除了有可接收開關信號的輸入電路,有時,還有接收模擬信號的輸入電路(稱模擬量輸入單元或模塊)。只是後者先要進行模、數轉換,然後,再把轉換後的數據存入PLC相應的內存單元中。
如要產生模擬量輸出,則要配有模擬量輸出電路(稱模擬量輸出模塊或單元)。靠它對PLC相應的內存單元的內容進行數、模轉換,並產生輸出。
這樣,用戶所要編的程序只是,PLC輸入有關的內存區到輸出有關的內存區的變換。這是一個數據及邏輯處理問題。由於PLC有強大的指令系統,編寫出滿足這個要求的程序是完全可能的。
a-簡化工作流程圖 b–實際工作流程圖
圖2 PLC工作流程圖
有了上述過程,用PLC實現控制顯然是可能的。因為:有了輸入刷新,可把輸入電路監視得到的輸入信息存入PLC的輸入映射區;經運行用戶程序,輸出映射區將得到變換後的信息;再經輸出刷新,輸出鎖存器將反映輸出映射區的狀態,並通過輸出電路產生相應的輸出。又由於這個過程是永不停止地循環反復地進行著,所以,輸出總是反映輸入的變化。只是響應的時間上,略有滯後。但由於PLC的工作速度很快,所以,這個「略有滯後」的時間是很短的,一般也就是幾毫秒、幾十毫秒,最多也不會超過100到200毫秒。
圖2a所示的是簡化的過程,實際的PLC工作過程還要復雜些。除了I/O刷新及運行用戶程序,還要做些其它的公共處理工作。公共處理工作有:循環時間監視、外設服務及通訊處理等。
監視循環時間的目的是避免用戶程序「死循環」,保證PLC能正常工作。為避免用戶程序「死循環」的辦法是用「看門狗」(Watching dog),即設一個定時器,監測用戶程序的運行時間。只要循環超時,即報警,或作相應處理。
外設服務是讓PLC可接受編程器對它的操作,或向編程器輸出數據。
通訊處理是實現與計算機,或與其它PLC,或與智能操作器、感測器進行信息交換的。這也是增強PLC控制能力的需要。
也就是說,實際的PLC工作過程總是:公共處理——I/O刷新——運行用戶程序——再公共處理——⋯反復不停地重復著。圖2b所示的是實際的過程。
此外,PLC上電後,也要進行系統自檢及內存的初始化工作,為PLC的正常運行做好准備。
用這種不斷地重復運行程序以實現控制,稱掃描方式工作。是PLC基本的工作方式。
此外,為了應對緊急任務,PLC還有中斷工作方式。在中斷方式下,需處理的任務先申請中斷,被響應後停止正運行的程序,轉而去處理中斷工作(運行有關中斷的服務程序)。待處理完中斷,又返回運行原來程序。
PLC的中斷方式的任務,或稱事件,是分等級的。同時出現兩個或多個中斷事件,則優先順序高的先處理,繼而處理低的。直到全部處理完中斷任務,再轉為執行掃描程序。
PLC對大量控制都用掃描方式工作,而對個別急需的處理,則用中斷方式。這樣,既可做到所有的控制都能照顧到,而個別應急的任務也能及時進行處理。
當然,PLC的實際工作過程比這里講的還要復雜一些,分析其基本原理,也還有一些理論問題。但如果能弄清上面介紹的思路,也可知到PLC是怎麼工作的了。
Ⅲ 程序的物理原理
程序是指令的集合,任何高級語言都必須最終翻譯成機器能懂的機器語言才能被執行,而機器語言是由二進制0和1組成的
這些0和1就代表了由二極體三極體等元器件構成的電路板里的電流的通斷或電平的高低,實際上就是邏輯上的是與非,執行還是不執行,計算多少次方,都可以通過電流的進出和高低來決定