Thông báo

Collapse
No announcement yet.

Kiến Trúc Von Neumann

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Kiến Trúc Von Neumann

    Do dòng ARM 7 dùng kiến trúc Von Neumann, nên tôi muốn xem qua về kiến trúc này , wiki tiếng việt ko có nên tôi viết ở đây, mục đích là để nhưng bác nào quan tâm thì mình cùng trao đổi.
    Biên dịch từ:
    Code:
    http://www.bookrags.com/research/von-neumann-architecture-wcs/
    Bản quyền thuộc về dientuvietnam.net, vui lòng ghi rõ nguồn khi trích dẫn

    Von Neumann là một kiểu kiến trúc phần cứng máy tính. Mặc dù ngày nay đã có những kiến trúc khác được đưa ra, nhưng kiến trúc Von Neumann vẫn là phổ biến trong các máy PC (và ARM 7 nữa ).

    Von Neumann là một nhà toán học (vật lí, ...đủ nghề...) người Mỹ, gốc Do Thái, là người đã đưa ra kiến trúc này.
    Năm 1944, Von Neumann làm cố vấn cho dự án chế tạo máy tính ENIAC, để phục vụ cho các mục đích quân sự của Mỹ. Năm 1945, Sau khi dự án ENIAC hoàn thành, Von Neumann cùng nhóm một vài thành viên trong nhóm làm việc của ông lại tiến hành một dự án mới, là xây dựng một máy tính hiện đại hơn, với tên gọi là EDVAC.
    Năm 1945, Von Neumann đã viết một bài báo có tính bước ngoặc với tựa: "Bản thảo đầu tiên về máy tính EDVAC " ("The First Draft of a Report on the EDVAC "), chứa đựng những ý tưởng về cầu trúc cơ bản mà một máy tính cần có . Bài báo này được Von Neumann trao đổi giới hạn với các thành viên trong nhóm làm việc, tuy nhiên, sau đó đã được phổ biến rộng rãi và ảnh hưởng mạnh đến sự phát triển của máy tính ở Mỹ và thế giới.

    Von Neumann đã mườn tượng ra cấu trúc của máy tính là sự kết hợp của các thành phần sau:
    1. arithmetic-logic unit (ALU)
    2. Memory (RAM)
    3. Von Neumann Control Unit
    4.
    input and output devices

    Một điểm đáng chú ý nhất trong kiến trúc Von Neumann là khái niệm "Chương trình được lưu trữ" (stored-program). Khái niệm này chỉ ra rằng: Dữ liệu (data) cùng với lệnh (instruction) được dùng để xử lí dữ liệu đó có thể được lưu giữ trên cùng một vùng nhớ của máy tính.

    Ý tưởng này ngược với cấu trúc của các máy tính trước đó như máy ENIAC.

    Do dữ liệu và các lệnh được lưu trong cùng một vùng nhớ (vùng nhớ ở đây là RAM), nên cần thiết phải phân biệt chúng. Do giá trị trên vùng nhớ chỉ là các số nhị phân 0,1 , do đó máy tính cần phải xác định được phần nào là dữ liệu, phần nào là lệnh, khối điều khiển Von Neumann - Von Neumann Control Unit (khối số 3 ở trên ) sẽ thực hiện nhiệm vụ này.

    Khi khối điều khiển Von Neumann bắt đầu gọi một lệnh để xử lí, nó gọi tới bộ đếm chương trình (program counter) để trỏ tới địa chỉ của lệnh trong bộ nhớ, rồi thì lệnh này sẽ được nạp và thực thi bởi vi xử lí. Địa chỉ của dữ liệu cần xử lí được chứa trong chính lệnh cần thực thi.

    Đang lúc tìm nạp và thực thị lệnh, bộ đếm chương trình sẽ tăng lên để trỏ tới lệnh tiếp theo cần thực thi. Quá trình này là tuần tự, nghĩa là các lệnh được thực thi một cách tuần tự, tại mỗi thời điểm chỉ có một lệnh được thực thi (nguyên văn: one instruction at a time). Đây là đặc điểm tiêu biểu của kiến trúc Von Neumann.

    Để ý: khi máy tính (ở đây là CPU) tìm nạp lệnh từ bộ nhớ (fetching an instruction) hay xử lí dữ liệu trên bộ nhớ (tức thực thi lệnh) thì cũng điều xem là one instruction. Điều này có nghĩa là: Khi CPU tìm nạp lệnh từ bộ nhớ (read memory) thì nó ko thể xử lí dữ liệu (read/write memory), ngược lại, khi xử lí dữ liệu trên bộ nhớ thì nó ko thể tìm nạp lệnh. Hai thao tác trên ko thể nào thực hiện đồng thời .??? mấy bác cho ý kiến chỗ này nhé.

    Tóm lại, đặc điểm chính của kiến trúc Von Neumann là:
    1. Máy tính là sự kết hợp các các thành phần: ALU, khối điều khiển Von Neumann control unit, input/output, và một bộ nhớ có thể chứa cả lệnh và dữ liệu.
    2. Các lệnh được thực hiện một cách tuần tự, mỗi thời điểm chỉ thực hiện được một lệnh.

    Chính kiến trúc này, như Von Neumann đã tự thừa nhận là làm giới hạn tốc độ thực thi của chương trình do tại mỗi thời điểm chỉ thực thi được một lệnh. Tình trạng này được John Backus, một người tiên phong trong lĩnh vực máy tính gọi là tình trạng "Thắt cổ chai von Neumann" (von Neumann bottleneck). Tình trạng "Thắt cổ chai von Neumann" chỉ ra rằng, tốc độ hệ thống bị giới hạn do tốc độ thực thi của CPU nhanh hơn tốc độ cung cấp thông tin cho CPU từ bộ nhớ (tốc độ truy xuất bộ nhớ).

    Ngày nay, có nhiều kỹ thuật nhằm giúp hạn chế tình trạng Thắt cổ chai von Neumann , như tăng độ rộng bus dữ liệu, kỹ thuật dùng bộ nhớ cache, ...cùng các kỹ thuật tiên tiến khác, tuy nhiên, bất chấp những cải tiến trên, kiến trúc dựa trên kiến trúc von Neumann vẫn là kiến trúc máy tính phổ biến nhất hiện nay.

    (bác nào rãnh xin bổ sung tiếp nhé , phần sau chủ yếu là sự khác biệt của kiến trúc Von Neumann và kiến trúc havvard)
    Attached Files
    Last edited by thavali; 08-10-2008, 10:39.

  • #2
    János Von Neuman

    Nguyên văn bởi thavali Xem bài viết
    Do dòng ARM 7 dùng kiến trúc Von Neumann, nên tôi muốn xem qua về kiến trúc này khác, wiki tiếng việt ko có nên tôi viết ở đây, mục đích là để nhưng bác nào quan tâm thì mình cùng trao đổi.

    Von Neumann là một kiểu kiến trúc phần cứng máy tính. Mặc dù ngày nay đã có những kiến trúc khác được đưa ra, nhưng kiến trúc Von Neumann vẫn là phổ biến trong các máy PC (và ARM 7 nữa ).

    Von Neumann là một nhà toán học (vật lí, ...đủ nghề...) người Mỹ, gốc Do Thái, là người đã đưa ra kiến trúc này.
    ......................................
    Bài viết của anh rất tốt, nhưng em xin cải chính gốc gác của Von Neuman.

    Riêng cái tên "Phôn Noi - Man" đã "tố cáo" gốc Đức của János Von Neuman, người Do Thái rất "kỵ" cái tên như thế. Ông ta viết chủ yếu bằng hai ngôn ngữ Đức và Pháp.

    John von Neumann was born János von Neumann. He was called Jancsi as a child, a diminutive form of János, then later he was called Johnny in the United States. His father, Max Neumann, was a top banker and he was brought up in a extended family, living in Budapest where as a child he learnt languages from the German and French governesses that were employed. Although the family were Jewish, Max Neumann did not observe the strict practices of that religion and the household seemed to mix Jewish and Christian traditions.
    Theo http://www-groups.dcs.st-and.ac.uk/~...n_Neumann.html

    Thân ái.

    Lan Hương.

    Comment


    • #3
      hì, ở trong trích dẫn của LH luôn mà: Although the family were Jewish....
      À, mà dịch online nên mình cũng có thể bị lộn

      Comment


      • #4
        Nguyên văn bởi thavali Xem bài viết
        hì, ở trong trích dẫn của LH luôn mà: Although the family were Jewish....
        À, mà dịch online nên mình cũng có thể bị lộn
        Không sao đâu anh, Lan Hương cải chính cho vui vì em ấy học văn hoá Đức, và cũng vì ngưỡng mộ cái ông "Phôn Noi-man vĩ đại" đó thôi.

        Thích nhất là một luận đề toán học của ông ta chứng minh rằng sẽ có những thế hệ máy tính tự tiến hành sản xuất được những thế hệ máy tính cao hơn nó. Luận chứng này rất kinh khủng, hình như nó báo hiệu một thời đại máy tính siêu thông minh, tự phát triển độc lập ngoài ý thức con người. Một nội hàm toán học nào đó của ông ta dường như để chứng minh rằng con người cũng là một loại máy tính siêu việt.

        Xin đón đọc các bài tiếp theo của anh.

        Comment


        • #5
          Em post bài này ai cần thì nghiên cứu nhé:
          1.Kiến trúc Von Neumann (1903-1957)
          Kiến trúc Von Neumann có một bộ nhớ và một bus để chuyển dữ liệu vào và ra đơn vị xử lý trung tâm (CPU) .CPU có thể đọc một lệnh, hoặc đọc/ghi dữ liệu từ bộ nhớ. Tuy vậy, cả hai quá trình tương tác với lệnh hoặc với dữ liệu, không thể thực hiện cùng lúc.Bộ lọc Von Neumann là thỏa đáng khi chúng ta quan tâm đến việc thực hiện các nhiệm vụ tuần tự.Hầu hết các máy tính ngày nay đều sử dụng thiết kế Von Neumann.Chúng ta chỉ cần kiến trúc khác khi đòi hỏi xử lý rất nhanh, và có thể chi trả với giá cao.

          2.Kiến trúc Harvard
          Kiến trúc Harvard được nghiên cứu tại chính trường đại học mà nó mang tên, dưới sự lãnh đạo của Howard Aiken (1900-1973)
          Aiken đã tách các bộ nhớ dữ liệu và bộ nhớ chương trình với các bus riêng rẽ cho từng bộ nhớ. Bởi vì các bus điều hành độc lập, các chỉ dẫn chương trình và dữ liệu có thể được đưa ra cùng một lúc, cải thiện tốc độ so với thiết kế với chỉ một bus. Hầu hết các bộ xử lý DSP hiện nay sử dụng kiến trúc 2 bus này.

          3.Kiến trúc SHARC
          Kiến trúc SHARC, viết tắt của cụm từ Super Harvard Architecture. Thuật ngữ này được tạo ra bởi Analog Devices để diễn tả quá trình hoạt động bên trong của dòng ADSP-2106x và ADSP-211x. Ý tưởng của kiến trúc này là xây dựng dựa trên kiến trúc Harvard bằng cách thêm vào những điểm đặc trưng để cải thiện thông lượng dữ liệu. Trong khi một bộ DSP SHARC có thể được mô tả dưới nhiều cách, có 2 phần cơ bản được thêm vào là bộ nhớ đệm chỉ lệnh và điều khiển vào/ra.
          Chúng ta cùng quan sát bên trong CPU SHARC DSPs của Analog Devices, ở phía trên của biểu đồ có 2 ô vuông có tên là Data Address Generator ( DAG) hay bộ tạo địa chỉ dữ liệu, mỗi cái sử dụng cho một bộ nhớ.Chúng điều khiển địa chỉ được gửi cho bộ nhớ chương trình và dữ liệu, đặc tả địa điểm thông tin được đọc hoặc ghi. Ở các bộ vi xử lý đơn giản hơn, tác vụ này được sử dụng như thành phần vốn có của program sequencer, và gần như không có ý nghĩa với lập trình viên. Tuy nhiên, các bộ xử lý DSP đã được thiết kế để thao tác với các bộ nhớ đệm vòng ( circular buffer ) , và trợ giúp từ các phần cứng bên ngoài để quản lý chúng hiệu quả. Nó tránh việc cần phải sử dụng các chu kỳ xung nhịp CPU trước kia để theo dõi vị trí lưu dữ liệu .Ví dụ như , ở DSP SHARC, mỗi DAG có thể điều khiển 8 circular buffer. Nó có nghĩa là mỗi DAG có thể nắm giữ 32 biến số ( mỗi buffer 4 biến số ). Tôi sẽ nói thêm sau về việc tại sao cần nhiều circular buffer đến vậy.

          Phần thanh ghi dữ liệu của CPU đươc sử dụng giống như các bộ vi xử lý truyền thống. Ở các bộ xử lý ADSP-2106x SHARC, có 16 thanh ghi thông thường của mỗi 40 bit. Nó có thể nắm giữ các phép tính trung gian. chuẩn bị dữ liệu cho bộ xử lý toán học. phục vụ như buffer cho việc truyền dữ liệu, nắm các cờ cho điều khiển chương trình...Nếu cần thiết, các thanh ghi này có thể được sử dụng để điều khiển vòng lặp và bộ đếm. Tuy nhiên, bộ xử lý SHARC có các thanh ghi cứng hỗ trợ các chức năng trên.
          Việc xử lý toán học đựoc chia ra làm 3 phần, multiplier, ALU (Arithmetic logic unit ) và barrel shifter. Multiplier lấy các giá trị từ 2 thanh ghi, nhân chúng lại và đưa kết quả vào một thanh ghi khác. ALU thực hiện phép cộng, phép trừ, lấy trị tuyêt đối, các phép toán logic (AND, OR, XOR, NOT) , chuyển đổi giữa dạng fixed và floating point, và các chức năng tương tự. Xử lý cơ bản đối với số nhị phân được thực hiện bởi barred shifter, như dịch chuyển hay xoay, đưa vào hay ra các phân đoạn ( segment) . Một tính năng mạnh mẽ của dòng SHARC là multiplier và ALU có thể được định chỉ song song. Ở các chu kỳ 1 xung nhịp, dữ liệu từ thanh ghi 0-7 có thể được đưa và multiplier, dữ liệu từ thanh ghi 8-15 có thể được đưa vào ALU. và 2 kết quả có thể đưa vào bất kì thanh ghi nào trong 16 thanh ghi.

          Tài liệu tham khảo: http://www.dspguide.com/
          Attached Files
          "Chỉ có rượu mới biết bụng mênh mông nhường nào
          Chỉ có bụng mới biết rượu đi đâu về đâu.
          Gặp nhau lần nào cũng rượu"

          Comment


          • #6
            Nguyên lý hoạt động

            Bác nào cho em biết về nguyên lý hoạt động của kiến trúc VON NEUMANN được không ạ

            Comment


            • #7
              cấu trúc và cách tổ chức của CPU theo nguyên tắc Von Neumann

              có ai biết không? mình đang học về phần này mà tìm trên mạng mãi ko thấy?
              Bạn nào biết giúp mình nhé! cảm ơn mọi người! thân!

              Comment

              Về tác giả

              Collapse

              thavali Tìm hiểu thêm về thavali

              Bài viết mới nhất

              Collapse

              Đang tải...
              X