0.評論集合

非馮諾伊曼型結構以前就有,比如哈佛結構,現在又有一些新的提出不過尚處於研究階段,比如量子計算機,但量子計算機顛覆的已不僅僅是馮氏體系,而是圖林模型,但這些新模型想投入使用並取代馮氏結構也許幾十年內都不可能。
 馮諾伊曼體系結構指的就是:“程序存儲,和順序執行”
Here is the definition I got from the hyper dictionary:

VON NEUMANN ARCHITECTURE
Computing Dictionary

Definition: A computer architecture conceived by mathematician John von Neumann, which forms the core of nearly every computer system in use today (regardless of size). In contrast to a Turing machine, a von Neumann machine has a random-access memory (RAM) which means that each successive operation can read or write any memory location, independent of the location accessed by the previous operation.

A von Neumann machine also has a central processing unit (CPU) with one or more registers that hold data that are being operated on. The CPU has a set of built-in operations (its instruction set) that is far richer than with the Turing machine, e.g. adding two binary integers, or branching to another part of a program if the binary integer in some register is equal to zero (conditional branch).

The CPU can interpret the contents of memory either as instructions or as data according to the fetch-execute cycle.

Von Neumann considered parallel computers but recognized the problems of construction and hence settled for a sequential system. For this reason, parallel computers are sometimes referred to as non-von Neumann architectures.

A von Neumann machine can compute the same class of functions as a universal Turing machine.


能說明問題了嗎?
順便比較一下圖靈:
Definition: A hypothetical machine defined in 1935-6 by Alan Turing and used for computability theory proofs. It consists of an infinitely long "tape" with symbols (chosen from some finite set) written at regular intervals. A pointer marks the current position and the machine is in one of a finite set of "internal states". At each step the machine reads the symbol at the current position on the tape. For each combination of current state and symbol read, a program specifies the new state and either a symbol to write to the tape or a direction to move the pointer (left or right) or to halt.

In an alternative scheme, the machine writes a symbol to the tape *and* moves at each step. This can be encoded as a write state followed by a move state for the write-or-move machine. If the write-and-move machine is also given a distance to move then it can emulate an write-or-move program by using states with a distance of zero. A further variation is whether halting is an action like writing or moving or whether it is a special state.

Without loss of generality, the symbol set can be limited to just "0" and "1" and the machine can be restricted to start on the leftmost 1 of the leftmost string of 1s with strings of 1s being separated by a single 0. The tape may be infinite in one direction only, with the understanding that the machine will halt if it tries to move off the other end.

All computer instruction sets, high level languages and computer architectures, including parallel processors, can be shown to be equivalent to a Turing Machine and thus equivalent to each other in the sense that any problem that one can solve, any other can solve given sufficient time and memory.

Turing generalised the idea of the Turing Machine to a "Universal Turing Machine" which was programmed to read instructions, as well as data, off the tape, thus giving rise to the idea of a general-purpose programmable computing device. This idea still exists in modern computer design with low level microcode which directs the reading and decoding of higher level machine code instructions.

A busy beaver is one kind of Turing Machine program.

Dr. Hava Siegelmann of Technion reported in Science of 28 Apr 1995 that she has found a mathematically rigorous class of machines, based on ideas from chaos theory and neural networks, that are more powerful than Turing Machines. Sir Roger Penrose of Oxford University has argued that the brain can compute things that a Turing Machine cannot, which would mean that it would be impossible to create artificial intelligence. Dr. Siegelmann's work suggests that this is true only for conventional computers and may not cover neural networks.

和並行計算:
A computer with more than one central processing unit, used for parallel processing.(they could be in a physical machine or just a virtual machine,我加註的)。
現在又有一些新的提出不過尚處於研究階段,比如量子計算機,但量子計算機顛覆的已不僅僅是馮氏體系,而是圖林模型,但這些新模型想投入使用並取代馮氏結構也許幾十年內都不可能。


----那並行計算是什麼?
你說的turing模型沒錯,但是對於von體系的理解是不對的
即使對於MPP這樣的並行計算來說,各個CPU依然可能是馮諾伊曼結構,這兩個不是一個範疇的概念。一般說馮諾伊曼是對就一個CPU而言,馮諾伊曼提出了將程序放在存儲器裏執行的思想,並就此提出一種具體的結構設計,稱之爲馮諾伊曼結構,主要特點是程序放存儲器裏,另外包含運算器,指令譯碼器,控制系統,輸入輸出系統,數據總線與控制總線分離的結構,程序指令順序取出執行。而非馮諾伊曼計算機以前的有數據驅動和圖形驅動的結構,程序存儲的思想不變,但指令不是順序執行,這兩種結構都天然就具有處理一些我們在馮氏體系中需要用並行計算來處理的問題的能力,或者說,這些問題在這兩種結構中都不需要專門爲設計類似算法。所以,我們通常作爲一種學科研究的並行計算與馮諾伊曼結構並不矛盾,兩者不是一個範疇的概念。而圖靈機與馮諾伊曼結構也不是一回事,圖靈機是一種抽象計算機,而馮諾伊曼則是具體實現,兩者更不是一個範疇的東西。至於分佈式計算(包含網格計算和集羣計算)那已經是軟件的東西了,更與馮氏扯不上了。所以我想你對馮諾伊曼結構方面和並行計算方面的知識還需要再看看。
 回覆: 此並行計算非彼“並行”。
1.即使對於MPP這樣的並行計算來說,各個CPU依然可能是馮諾伊曼結構,這兩個不是一個範疇的概念。
--CPU? or computer?
von Neumann machine or von Neumann Architecture,
你在不斷的偷換概念。

2.一般說馮諾伊曼是對就一個CPU而言,馮諾伊曼提出了將程序放在存儲器裏執行的思想,並就此提出一種具體的結構設計,稱之爲馮諾伊曼結構,主要特點是程序放存儲器裏,另外包含運算器,指令譯碼器,控制系統,輸入輸出系統,數據總線與控制總線分離的結構,程序指令順序取出執行
--一般的?如果是多個CPU,那叫什麼?
並且這裏你又把von neumann machin和von neumann architecture還一起說事了。

3。而非馮諾伊曼計算機以前的有數據驅動和圖形驅動的結構,程序存儲的思想不變,但指令不是順序執行,這兩種結構都天然就具有處理一些我們在馮氏體系中需要用並行計算來處理的問題的能力,或者說,這些問題在這兩種結構中都不需要專門爲設計類似算法。
--這裏“以前”是什麼意思?什麼是數據驅動,圖形驅動?
你也承認“非順序執行就不是von neumann architecuture了。但還可以說是von neumann machine,是這個意思吧?

4。所以,我們通常作爲一種學科研究的並行計算與馮諾伊曼結構並不矛盾,兩者不是一個範疇的概念。
--什麼叫不是一個範疇?是你指的什麼CPU, 軟件等等的問題嗎?

5。兩者不是一個範疇的概念。而圖靈機與馮諾伊曼結構也不是一回事,圖靈機是一種抽象計算機,而馮諾伊曼則是具體實現,兩者更不是一個範疇的東西。
--turing在處存儲思想上和VON是一樣的。我提到了TURING是因爲你上面提到了他,嚴格的說Universal Turing Machine是目前看到的所有計算機的理論依據,如果說TURING體系50年不變,大部分人都同意。

6。至於分佈式計算(包含網格計算和集羣計算)那已經是軟件的東西了,更與馮氏扯不上了。
--恐怕你說錯了吧。我多說幾句:
PARALLEL COMPUTER:A computer with more than one central processing unit, used for parallel processing.
分佈式計算體系屬於屬於PARALLEL COMPUTER的範圍(從VIRTUAL MACHINE的角度講),MULTIPROCESSOR也是在這範圍,這和軟件有什麼關係?
難道您的意思是說都必須要硬件實現?那我想如果不是出於通用的考慮,用硬件實現也不是不可以(
All computer instruction sets, high level languages and computer architectures, including parallel processors, can be shown to be equivalent to a Turing Machine and thus equivalent to each other in the sense that any problem that one can solve, any other can solve given sufficient time and memory.
這有足夠的說服力吧?)
並且,附帶說明一下,你輸得他們屬於軟件範疇的書法也是不對的。有一些東西事實上在硬件上造就實現了(比如ibm很早的370和3090就已經有了硬件了,當代的sp等等數不勝數)

另外,你舉了mpp的例子,如果你學過mpp,那說明你是PH.D,不過,我覺得MPP應該屬於並行“運算的範圍,只是dce的一個小子集,並不是全部,對於mpp來說,她關心的是計算單元的規劃以及在計算節點上的分配和組合,MPP關心的不是CPU,CPU也不是VON系的本質(程序存儲,順序計算纔是),MPP的節點我想程序存儲沒問題,但是“順序執行"恐怕沒有人這樣認爲。

--所謂的VON NEUMANN MACHINE就是指COMPUTER是由I/O,CPU(CU&ALU),MEMORY組成的。
VON NEUMANN 體系結構指的是“程序存儲,順序執行“。

7。所以我想你對馮諾伊曼結構方面和並行計算方面的知識還需要再看看。
--那時,我一直在認真的看,不光是要看,還要象別人虛心請教。

回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
如此長篇大論,我不一一反駁了,只說明幾點,其他我覺得再去看看組成原理或並行體系結構的教科書就可以了。

1)CPU的說法可能不十分嚴格,但你總不能讓我每次都寫CPU+存儲器+輸入輸出吧,我不知道該怎麼簡練表達,我以爲這樣你應該可以理解。

2)非順序不是一定就是並行,同樣,並行是一個宏觀概念,所以,並行不一定就意味着微觀非順序。而且,馮結構指的順序是指令按順序(根據指令計數器內容)被取出執行,不是指順序執行,這兩者是不一樣的,否則,所有RISC計算機就都不算是馮氏結構了。

3)一般說分佈式計算只是狹義的指MUTI-COMPUTER,多處理器的往往單列一類,因爲兩者的技術以及面臨的問題差別還是比較大的。多處理器的並行計算可以通過硬件實現,但分佈式計算我沒有聽說過純硬件的。

4)我不是phD, 我以前的專業是分佈式,所以瞭解一些,而且這些很多應該大學裏都應該學過。
回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
長話短說
站在以cpu爲中心的觀點上,你說的是對的,站在MEMORY(SHARED MEMORY)的角度上,你說的不對。

對於:2)非順序不是一定就是並行,同樣,並行是一個宏觀概念,所以,並行不一定就意味着微觀非順序。而且,馮結構指的順序是指令按順序(根據指令計數器內容)被取出執行,不是指順序執行,這兩者是不一樣的,否則,所有RISC計算機就都不算是馮氏結構了。
--這裏指的是單一cpu的pc順序吧,如果是多CPU呢?他們之間的pc可以不是順序的吧。這裏我說的是並行,不是併發。

3)我學的圖靈機只說狀態數據被存儲,你的圖靈機所謂程序也被存儲是從哪裏學到的?
---THE IDEA ,KNOWN AS THE "STORED-PROGRAM CONCEPT" ,IS USUALLY ATTRIBUTED TO THE enica DESIGNERSMOST NOTABLY THE MATHEMATICIAN JOHN VON NEUMANN,WHO WAS A CONSULTANT ON THE ENIAC PROJECT.THE IDEA WAS ALSO DEVELOPED AT ABOUT THE SAM TIME BY TURING.(EXCERPTED FROM COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE 4 EDITION 1996 BY PRENTICE HALL.)

4)一般說分佈式計算只是狹義的指MUTI-COMPUTER,多處理器的往往單列一類,因爲兩者的技術以及面臨的問題差別還是比較大的。
---那恐怕是你要看看書了,儘管對DISTRIBUTED SYSTEMS的定義不是很嚴謹,但是至少flynn的分類還是基本上被大家認同的(SISD, SIMd, MIMD( 細分爲multiprocessors 和multicomputers).


我覺得站在DSP等等的立場上看問題,是比較片面的。並且,單一CPU內的並行處理以已經產品話的東西。
 回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
共享存儲多處理器依然需要編譯器和操作系統的幫忙,而站在微觀角度,每個CPU存儲器組成的結構依然是馮諾依曼型的,雖然理論上我可以將一個數據驅動的非馮諾依曼結構以這樣的方式實現並且不依靠操作系統,但我比較孤陋寡聞,不曉得現實有無這樣的機器,我沒有專門研究過。

通用圖靈機與馮諾依曼結構確是一致的。

關於分佈式系統定義的問題,確實沒有統一的定義,所以我要說一般指什麼。書的頭幾頁一般都會這樣講他的定義,其實也算不上定義,我覺得只能算介紹一下背景,家族,有哪些親戚而已。如果你瞭解他們,你應該知道分佈式計算與並行計算是差別非常大的,那些書一般講完頭幾葉後面就開始該講啥講啥了。所以這方面的論文往往也不會特意註明我這是muti-computer還是multi-processor.

"單一CPU內的並行處理", RISC就是這樣的CPU,但我認爲它仍然是馮氏體系的。

回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
我值得是對於一個multi-procssor的computer來說,把這個computer作爲整體來看,由於引入了並行計算,所以已經不是SISD了,可以不是順序執行的(不同CPU之間的pc沒有順序說法,在同一CPU內部是順序的。調度是由操作系統完成的。所以我說了站在單一CPU的觀點上,可以說這個CPU是諾伊曼體系的,但是那和站在computer整體的觀點上提到的“順序執行“的概念是不一樣的。cpu爲中心就是這樣過渡到以memory爲中心的。我這樣江你不困惑吧?

關於分佈式系統定義的問題,確實沒有統一的定義,所以我要說一般指什麼。書的頭幾頁一般都會這樣講他的定義,其實也算不上定義,我覺得只能算介紹一下背景,家族,有哪些親戚而已。如果你瞭解他們,你應該知道分佈式計算與並行計算是差別非常大的,那些書一般講完頭幾葉後面就開始該講啥講啥了。所以這方面的論文往往也不會特意註明我這是muti-computer還是multi-processor.
-還是要說的。不過區別不是很大(但是在不同細節的實現上難度是大相徑庭的)。

"單一CPU內的並行處理", RISC就是這樣的CPU,但我認爲它仍然是馮氏體系的。
---不是什麼RISC不RISC,RISC值得是時鐘片內的"併發“吧?,我只得是有些CPU已經可以做到一個CPU由好幾個CPU組成,這些內部的cpu是真正的併發的,(powepc,具體型號幾不住了)。

回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
你理解的不對,考察體系結構時不應該把操作系統的因素也加進來。

分佈式計算與並行計算雖然問題域有相同的地方,但不同的地方更大,兩者各自理論發展出的概念也不同。怎麼能說“區別不是很大”呢?

流水線技術本身就是一種並行技術。其實並行計算不是一定和多CPU聯繫在一起的,這是一種誤解。另外我記得powerpc就是一個RISC CPU。

以什麼爲中心,是從計算機的體系結構的觀點出發的,沒有這個前提,我的論點是不對的。
回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
到這裏基本上都已經講得很明白了
關於你我的出發點,即現在的non von numann體系到底是von meumann的擴展呢,還是幾經不屬於指體系了,業界並沒有一個統一的認識。

另外,我並沒有講distributed system合併興系統美多大區別,我只得是dce的multi-processors和multi-computers還是有區別的。

考慮操作系統,我的意思是指分佈計算環境需要操作系統提供相應的支持(同步,時鐘,資源管理。。。)。

power PC是RISC,我沒有說不是,但是,你怎麼就這麼肯定她只有一個CPU?

並行計算的和CPU相關的並行問題,我並沒有提出來,因爲我不懂象array, vector,,等等技術。但是,DCE是其他並行計算模型的環境(MPP,cluster。。。),這沒什麼問題吧?既然DCE本身已經不屬於von neumann的範疇了(或者叫屬於von neumann的擴展範疇了),那麼,parrallel能不是嗎?


回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
確實,爭論到這裏已經沒什麼好爭論的了。不過還是需要回到出發點將我爲什麼不同意你的說法的原因說一下以期清晰此爭論的原因。原因是我認爲你將不同範疇的東西搞到一塊了,就好比非要把CPU和數字電路放在一起比較一樣,說“CPU不是數字電路”,這樣比較是不對的,DCE與馮諾伊曼體系根本就是兩個世界的東西。

回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
我正是的江分佈是計算改成distributed & parallel 並行性,這樣明確了嗎?
你說的CPU,那是因爲你一直沒有明白我說的意思(我表達得不清)

我的意思是,不考慮CPU的併發性(也就是不考慮SIMD硬件結構,因爲我不懂),僅僅考慮MIMD環境下的distributed & parallel 並行性考慮,就已經足以說明已經有了非von neumann體系的東西了,這樣描述,可以吧。

因爲von體系是典型的SISD的硬件模型,所以是以CPU爲中心的計算模型,而MIMD是典型的memory爲中心的計算模型(SIMD也是),這東西不是我這樣稱呼的,出處,因爲我是在找不到(時間也不允許),這裏是不是優分歧?

 回覆: 此並行計算非彼“並行”。
 
--------------------------------------------------------------------------------
 
von最初提出的結構是SISD的,但是後來從這一個結構出發衍生出了SIMD和MIMD,所以我認爲他們還是屬於VON體系,因爲他們基本原理是完全一致的。VON體系其實就是通用圖靈機在現實世界的具體實現,我們現在幾乎所有的計算模型,包括並行計算模型以及其他更高層次的概念均受限於此一體系,所以我們說現在我們依然處於von體系時代。非von體系目前比較有希望的就是量子計算機了,那種狀態模型與圖靈機是完全不同的,我們現有的大多數理論模型均需要重新研究,所以我認爲這樣劃分是否von體系纔有意義(對於做研究而言),否則就是純粹的名字代號的討論了,那樣沒什麼意義。

有道理,不過我保留我的觀點。

我還是同意hyper dictionary 的觀點,即von體系不支持並性處理(計算),在非SISD領域的計算模型是建立在turing model上的。

對與有沒有意義,我想總可以明晰一些東西吧。

謝謝討論。

 

發佈了1 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章