Thông báo

Collapse
No announcement yet.

Innovative microprocessor architecture

Collapse
This topic is closed.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #91
    Nói bằng ca dao nặng lắm bác bqviet à.
    Thôi để thay đổi không khí ta kể truyện chơi cho vui.
    ******
    Có một địa chủ lớn cũng là một lý trưởng nhỏ nhân dịp đại thọ của mình nhận được một bức hoành phi của một thầy đồ có tiếng thanh cao và cũng thường hay chống đối ông trong lúc làm việc.
    Trên bước hoành phi có ghi " Đại điểm quần thần " rất đẹp bằng chữ nho.
    Ông mừng lắm đem treo ngay vào phòng khách nơi trang trọng nhất.
    Một thời gian sau có người bạn đến chơi, người này khuyên ông nên cất bức hoành phi đó đi đừng treo nữa. Ông hỏi tại sao bạn ông nói rằng : " Đại điểm là cái chấm to, quần thần là bầy tôi. Đại điểm quần thần là chấm to bầy tôi. Nói trại thành " Chó tân bồi tây " nên ông hãy cất đi " . Ông lý nhà ta biết vậy thâm tím mặt mày vào, đem cất ngay bức hoành phi đi và cấm người trong nhà không được nhắc đến việc ô nhục này nữa.
    ****
    ITX kể truyện cũng hay như ca dao phải không bác bqviet. Biết bác đọc là nghiệm ra ngay nhưng đừng bật mí nhé , à mà bữa nào mới bay vào trong này vậy ?
    Last edited by itx; 06-08-2010, 19:20.
    Từ chối trách nhiệm:
    Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
    Blog: http://mritx.blogspot.com

    Comment


    • #92
      Chào các bác,
      Thôi thì em đưa đầu cho các bác ném đá để khai thông cái sự ngu muội của em vậy, hì .

      Thứ nhất, bác ITX nói là PEx của bác lntran là có thể chôm từ TILE. Qua các bài bác viết em chưa thấy bác phân tích hoạt động của TILE trong mạng TILE kỹ như PE của bác lntran. Đòi hỏi điều này thì hơi quá vì bác bận nhưng nếu bác có thời gian thì nói qua vấn đề này để mọi người cùng được học hỏi thêm.

      Thông qua ví dụ của em bác nói là yếu tố thời gian phụ thuộc vào công nghệ, em chưa thấy hoàn toàn thuyết phục nếu cấu trúc của bác dựa vào xung đồng hồ vật lý thực. Vì thời gian thực hiện một phép tính của một cấu trúc dựa vào xung đồng hồ và cấu trúc không dựa vào xung đồng hồ là không thể biết nếu chưa có silicon chứng minh. Theo kinh nghiệm của em cấu trúc không dựa vào xung có lợi thế hơn nhưng nhược điểm là không được đồng bộ. Nên việc cùng một công nghệ mang ra để so sánh hai cấu trúc không giống nhau là không có ý nghĩa. (cái khác nhau rõ nhất là một cái hoạt động dựa vào xung đồng hồ, và một cái hoạt động không dựa vào xung đồng hồ.)

      Thứ hai, vấn đề multi hay không multi thì em đã nói là em không có ý kiến, nhưng qua bài viết của bác em có thể hiểu việc phân nhiệm các TILE là do chương trình, còn việc cấu hình PEx của bác lntran là do IFU. Cái IPU thì bác lntran đã đưa lên rồi, còn cái việc phân chia công việc của từng TILE thì em chưa được biết.

      Thôi thế đã, nếu các bác có thời gian thì khai sáng tiếp cho em, cám ơn các bác rất nhiều.

      Thân mến.
      P/S: À mà em nói nếu giả sử xung đồng hồ là khái niệm ảo thì em đồng ý dùng sơ đồ của bác để giải thích thêm rồi mà. Tức là đúng là 5 PEx sẽ lần lượt thực hiện như thế nhưng về thời gian thì cần phải xem lại vì PEx chỉ cần gọi lệnh cộng một lần, còn TILE thì cần gọi lệnh công 5 lần. (đấy là theo ý hiểu của em) thêm nữa về giả sử dùng chung công nghệ thì em cũng có giải thích ở phía trên rồi, hì .
      Các bác thích văn nghệ nên em cũng sưu tầm được mấy câu, kính các bác:

      . . .Chẳng chó, bắt mèo ngồi ngửa mặt
      có tong cùng chốt rước tràm môi
      lẫn thay cho lão ngồi câu quẹt
      chấp chứa làm chi những giống hôi . . .
      Last edited by hithere123; 06-08-2010, 20:05. Lý do: thêm PS

      Comment


      • #93
        Nguyên văn bởi hithere123 Xem bài viết
        Chào các bác,
        Thôi thì em đưa đầu cho các bác ném đá để khai thông cái sự ngu muội của em vậy, hì .

        Thứ nhất, bác ITX nói là PEx của bác lntran là có thể chôm từ TILE. Qua các bài bác viết em chưa thấy bác phân tích hoạt động của TILE trong mạng TILE kỹ như PE của bác lntran. Đòi hỏi điều này thì hơi quá vì bác bận nhưng nếu bác có thời gian thì nói qua vấn đề này để mọi người cùng được học hỏi thêm.

        Thông qua ví dụ của em bác nói là yếu tố thời gian phụ thuộc vào công nghệ, em chưa thấy hoàn toàn thuyết phục nếu cấu trúc của bác dựa vào xung đồng hồ vật lý thực. Vì thời gian thực hiện một phép tính của một cấu trúc dựa vào xung đồng hồ và cấu trúc không dựa vào xung đồng hồ là không thể biết nếu chưa có silicon chứng minh. Theo kinh nghiệm của em cấu trúc không dựa vào xung có lợi thế hơn nhưng nhược điểm là không được đồng bộ. Nên việc cùng một công nghệ mang ra để so sánh hai cấu trúc không giống nhau là không có ý nghĩa. (cái khác nhau rõ nhất là một cái hoạt động dựa vào xung đồng hồ, và một cái hoạt động không dựa vào xung đồng hồ.)

        Thứ hai, vấn đề multi hay không multi thì em đã nói là em không có ý kiến, nhưng qua bài viết của bác em có thể hiểu việc phân nhiệm các TILE là do chương trình, còn việc cấu hình PEx của bác lntran là do IFU. Cái IPU thì bác lntran đã đưa lên rồi, còn cái việc phân chia công việc của từng TILE thì em chưa được biết.

        Thôi thế đã, nếu các bác có thời gian thì khai sáng tiếp cho em, cám ơn các bác rất nhiều.

        Thân mến.
        Có phân tích hết rồi bạn chịu khó đọc kỹ một tí.

        Này thì kiến trúc silicon, dụa vào xung đồng hồ với không đồng hồ.
        C cũng có thể hiểu là một lện nếu bạn muốn nhưng nếu ITX nói như thế có phần không rõ ràng và dễ hiểu lầm
        Trong đó T là thời gian giới hạn xử lý của PE cái này do công nghệ chế tạo chip quyết định, để dễ hiểu ta cho 2 chip được chế tạo bằng cùng một công nghệ
        TILE với lại chẵng PEx
        đó chính là TILE mà cái này chôm của TILE thì nó là TILE chứ còn là cái gì ?
        À mà nhớ xem lại cái mPIPE và MiCA trong file pdf nhé.

        Bạn thông cảm nhưng ITX cũng không muốn viết một cuấn " Hướng dẫn thiết kế và phân tích microprocessor " đâu. một phần là lười vì viết mấy cái này xương sẩu lắm, và như bạn biết phải xác định và quy định trình độ người đọc ..vân ..vân .. và ..vân ..vân.. Ôi viết sách ITX sợ lắm cơ.

        PS: Nhớ đọc lại hết, mấy cái trích dẫn đó chỉ để lưu ý là nó nằm trong post nào mà thôi.
        Last edited by itx; 06-08-2010, 20:15. Lý do: PS
        Từ chối trách nhiệm:
        Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
        Blog: http://mritx.blogspot.com

        Comment


        • #94
          Cháo các bác,

          Bác lntran bảo là PEx không dùng xung đồng hồ, em cũng có hỏi bác ấy là có dùng latch không nhưng latch cũng là khái niệm ảo. Còn theo như những gì bác đưa lên liên quan đến xung đồng hồ thì em vẫn chưa biết là bản thân một TILE có hoạt động dựa trên xung đồng hồ hay không. Bác có nói là bác không có hứng thú khai sáng cho thằng em thì thôi vậy, thằng em phải lọ mọ từ tìm tòi thêm vậy. Với em cái này rất quan trọng, mạch điện chạy theo nhịp và không theo nhịp thì không thể coi là giống nhau được.

          Tóm lại kết luận là: Bác nói cấu trúc của bác lntran là chôm từ TILE. Còn bác lntran thì bảo cả hai cái đấy chẳng liên quan gì đến nhau cả. Và tốt nhất là để mọi người tự đọc rồi tự rút ra cho mình kết luận vậy vì các bài viết trên này như thế là đủ rồi. Em cũng không có ý kiến gì nữa.

          Thân mến.

          Comment


          • #95
            Không phải là hứng thú hay không mà cái ngành bạc bẽo này dễ bị sue và va chạm lắm lắm ( bạn biết mà ). Đó cũng là lý do tại sao ITX bỏ nó. Thứ đến là những cái khái niệm, định nghĩa thường không rõ ràng dễ hiểu lầm, chồng chéo đây là bản chất của nó, người đọc phải có một mức nhất định và phải có tư tưởng muốn tiếp thu....

            ITX cũng không phải là một kẻ chấp nhặt, nhưng cũng chỉ là một con người khi nghe những lời xấc xược thì cảm thấy khó chịu một chút thôi. Trong khi tư tưởng ban đầu chỉ muốn nhắc khéo và góp ý xây dựng cái sáng tạo này. Vậy đó.
            Và ITX không có thói quen ném đá khi bực mình mà chỉ đem xe lu, xúc, ủi đến làm phẳng địa điểm, giải phóng mặt bằng luôn, vì cái thói qen nhỏ này rất nhiều người không ưa ITX.

            Thôi dài dòng quá. Chỉ vài dòng muốn nói. Dừng lại tại đây thôi.
            . Lời cuối chúc các bạn thành công về mọi mặt.

            -----
            [ đoạn này thêm sau khi có điện lại ]

            Trả lời thêm cho bạn hithere123 về vấn đề xung đồng hồ của TILE, Thông tin mà ITX có về cái này của TILE rất mập mờ trước đây có thông tin là không xài xung đồng hồ, sau này lại có cái bảo là có. Nói tóm lại TILE nó cho rất ít thông tin về khoản này và ITX không nằm trong bụng nó nên không giám chắc hay khảng định gì cả. Chỉ có phán đoán là nhiều khả năng vớ số nhân rất cao như hiện nay 100 nhân thì có thể nó sẽ xài xung đồng hồ vì giải pháp này nhiều lợi thế hơn. Đây chỉ là phán đoán cá nhân vì không có thông tin chính xác nào từ TILE, có lẽ đây là bí mật của họ. Nếu bạn có thông tin này ( mới nhé ) từ nguồn nào thì bật ví với ITX nhé.
            Last edited by itx; 06-08-2010, 22:16. Lý do: Viết tiếp, sửa sau khi có điện lại
            Từ chối trách nhiệm:
            Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
            Blog: http://mritx.blogspot.com

            Comment


            • #96
              Nguyên văn bởi itx Xem bài viết
              Nói bằng ca dao nặng lắm bác bqviet à.
              Thôi để thay đổi không khí ta kể truyện chơi cho vui.
              ******
              Có một địa chủ lớn cũng là một lý trưởng nhỏ nhân dịp đại thọ của mình nhận được một bức hoành phi của một thầy đồ có tiếng thanh cao và cũng thường hay chống đối ông trong lúc làm việc.
              Trên bước hoành phi có ghi " Đại điểm quần thần " rất đẹp bằng chữ nho.
              Ông mừng lắm đem treo ngay vào phòng khách nơi trang trọng nhất.
              Một thời gian sau có người bạn đến chơi, người này khuyên ông nên cất bức hoành phi đó đi đừng treo nữa. Ông hỏi tại sao bạn ông nói rằng : " Đại điểm là cái chấm to, quần thần là bầy tôi. Đại điểm quần thần là chấm to bầy tôi. Nói trại thành " Chó tân bồi tây " nên ông hãy cất đi " . Ông lý nhà ta biết vậy thâm tím mặt mày vào, đem cất ngay bức hoành phi đi và cấm người trong nhà không được nhắc đến việc ô nhục này nữa.
              ****
              ITX kể truyện cũng hay như ca dao phải không bác bqviet. Biết bác đọc là nghiệm ra ngay nhưng đừng bật mí nhé , à mà bữa nào mới bay vào trong này vậy ?
              Chó Tâm chứ không phải Tân. Đây là chuyện có thật thời pháp thuộc. Tớ đọc trong cuốn Chơi Chữ của ông Lãng Nhân.

              Không hiểu ý bác thế nào nhưng tớ thấy câu chuyện này không nên đăng trong post này.

              Comment


              • #97
                Hi các bác,

                Hôm nay mình không viết sâu về kiến trúc máy tính nữa mà sẽ giới thiệu để các bác biết làm thế nào để thiết kế các kiến trúc máy tính. Những điều mình viết ra trong phần này hầu hết là từ kinh nghiệm và suy nghĩ của bản thân. Các bác nào làm về kiến trúc máy tính xin hay đóng góp ý kiến và chia sẻ với mọi người.

                Thông thường mọi người thường nói về kiến trúc máy tính (computer architecture) nhưng thực ra nó gồm 2 phần computer architecture và computer organization. Computer architecture là toàn bộ kiến trúc dưới cách nhìn từ mức rất cao bao gồm cả ứng dụng, lập trình, phần cứng. Trong khi đó computer organization là cách thiết kế một phần cứng cụ thể như một vi xử lý gồm cache, ALU, register file, IFU, IO controller... Một loại computer architecture có thể có nhiều loại computer organization khác nhau ví dụ như Pentium 3, và Pentium 4, là 2 vi xử lý có cùng một architecture nhưng khác organization. Khi nhìn 2 loại vi xử lý này ở mức cao, nó đều có chung kết nối IO (front side bus), chung một tập lệnh, và sử dụng chung mục đích, vậy nên nó có chung architecture. Nhưng trong thiết kế cụ thể của Pentium 4, người thiết kế sử dụng deeper pipeline, nên về mặt organization 2 loại này hoàn toàn khác nhau. Hay lấy một ví dụ đơn giản hơn, để thực hiện lệnh nhân chia, người ta có thể sử dụng những mạch nhân chia riêng hoặc có thể sử dụng mạch cộng trừ và shifter. Về mức architecture 2 loại này là 1, nhưng về mức organization 2 loại này khác hẳn nhau. Theo như mình thấy, architecture và organization có cùng chung một nguyên tắc thiết kế nên nhiều người mọi người hay gộp chung 2 loại này để nói. Nhưng nếu tách riêng cũng dễ phân biệt và tiện cho việc thiết kế hơn.

                Như mình đã từng nói, thiết kế kiến trúc máy tính khó hơn và trìu tượng hơn thiết kế mạch số hay mạch tương tự. Một trong những nguyên nhân quan trọng đó là rất khó có thể chạy mô phỏng toàn bộ hoạt động của một kiến trúc máy tính. Điều này mình đã nói với các bác rồi nên không nói lại nữa. Một điều quan trọng thứ hai cần phải nói đến là việc trade-off. Với các bác là kỹ sư thì không lạ gì việc trade-off nhưng mình cũng muốn nhắc lại một chút nhất là với các bác là sinh viên. Người làm thiết kế bao giờ cũng phải cân đối giữa các chỉ tiêu kĩ thuật. Để tăng một chỉ tiêu kỹ thuật này lên thường làm giảm chỉ tiêu kỹ thuật khác. vì vậy cân đối giữa tất cả các mặt là điều bặt buộc. Tuy nhiên trade-off trong kiến trúc máy tính khác xa so với trade-off trong thiết kế mạch. Trong thiết kế mạch, khi trade-off có thể làm thay đổi một số chỉ tiêu của mạch nhưng hiếm khi làm thay đổi hoạt động của toàn bộ hệ thống. Vì vậy trade-off trong circuit design có độ tự do rất lớn. Sau đây mình lấy 2 vi dụ đơn giản cho mạch số và tương tự.

                Với mạch số khi các bác muốn mạch chạy nhanh hơn, các bác có thể tăng điện áp nguồn. Điều này chỉ làm công suất mạch điện tăng cao nhưng chức năng mạch điện không đổi. Hay đối với mạch tương tự, ta có thể tăng bias current để giảm nhiễu (noise figure, phase noise) trong các mạch LNA hay PLL. Mình không có nhiều kiến thức về mạch analog những cũng xin phép bác Hithere123, và các bác làm về analog giới thiệu một chút về điều này để các bác rõ hơn. Nếu có gì không chính xác xin các bác chỉnh lại. Bias current là một trong những chỉ tiêu quan trong khi thiết kế mạch tương tự. Bias current càng lớn thì hệ số khuyếch đại càng cao, nhiễu càng nhỏ... nhưng mạch lại tiêu thụ công suất nhiều. Vì vậy người thiết kế thường sử dụng register file để thay đổi bias current của những mạch có các chỉ tiêu quan trọng, và khó có thể mô phỏng chính xác như LNA, PLL. Sau khi sản xuất ra, tùy theo hoạt động thực tế của mạch người ta sẽ quyết định bias current sao cho vừa đảm bảo chỉ tiêu kỹ thuật, vừa tiết kiệm công suất.

                Trade-off trong computer architecture không phải chỉ đơn giản là tăng giảm một vài chỉ tiêu mà điều này quyết định đến toàn bộ hoạt động của cả hệ thống. Để các bác dễ hiểu, mình dùng một ví dụ mà các kỹ sư Intel từng mắc sai lầm. Chip Pentium 4 khi mới ra đời sử dụng bộ nhớ RAM bus hay còn gọi là RD RAM. Ram bus có tốc độ xung đồng hồ rất cao, nếu mình nhớ không nhầm lúc mới ra tốc độ của ram bus đã lên đến 800 MHz. Nguyên tắc hoạt động của ram bus là chuyển dữ liệu từ song song sang nối tiếp để có thể truyền với tốc độ cao trên PCB. Điều này thật ra cũng chẳng có gì là và chắc các bác cũng đã thấy rất nhiều ví dụ như sử dụng PCI express thay thế PCI, USB thay thế LPT, SATA, thay thế PATA. Nhờ có xung đồng hồ cao, băng thông của RAM bus cao hơn những loại khác nhiều. Tuy nhiên việc chuyển đổi dữ liệu từ song song sang nối tiếp, rồi trở lại song song làm tăng latency của mạch lên khá nhiều. Như vậy ở đây các kỹ sư Intel đã hi sinh latency để tăng bandwidth của vi xử lý. Thực tế cho thấy, kiến trúc này chẳng hề hiệu quả hơn so với kiến trúc của AMD sử dụng DDR RAM 266. Thêm vào đó RAM bus rất đắt đỏ, và tiêu thụ công suất lớn. Cuối cùng kiến trúc sử dụng RAM bus của Intel đã bị loại bỏ. Như vậy ta có thể thấy trade-off trong kiến trúc máy tính không đơn thuần chỉ là tăng chỉ tiêu kĩ thuật ở một mặt, và giảm ở mặt khác. Một trong những điều quan trong bậc nhất khi làm về kiến trúc là phải có cái nhìn toàn diện trên tất cả các mặt, và đánh giá tất cả các mặt.

                Thật ra Intel cũng không hoàn toàn từ bỏ kiến trúc truyền dữ liệu nối tiếp đến bộ nhớ này. Máy chủ của Intel sau này sử dụng kiến trúc Full buffer Dimm cũng truyền dữ liệu theo kiểu nối tiếp. Fully buffer dimm cũng có tốc độ truyền dữ liệu cao nên băng thông rất cao. Thêm vào đó kiểu truyền nối tiếp cho phép tín hiệu có high signal integrity. Nhờ vậy người ta có thể cắm một lúc 16 dimm trên một board bộ nhớ , mỗi board bộ nhớ này lại cắm vào mother board nối đến một memory channel. Một chip set (North bridge) có thể điều khiến tới 4 (8 mình không chắc lắm) channel. Vậy các bác có thể ước lượng được máy chủ của Intel có thể có bao nhiêu bộ nhớ. Mình đưa ra ví dụ này để các bác thấy ý kiến cho rằng dung lượng bộ nhớ bị hạn chế là không chính xác. Ý kiến này chẳng qua chỉ dựa trên mấy cái máy tính cá nhân ở VN, và người đưa ý kiến này không có kinh nghiệm về làm việc với máy chủ. Thực tế việc tăng dung lượng bộ nhớ là việc làm dễ nhất (dễ hơn nhiều so với việc tăng xung đồng hồ), tuy nhiên mọi việc đều là trade-off. Fully buffer dimm cũng tương tự như ram bus rất đắt đỏ, tiêu thụ nhiều công suất và có latency cao. Bản thân mình không thích cách thiết kế fully buffer dimm mà thích kiểu sử dụng Register dimm của AMD hơn, trong đó AMD tăng bộ nhớ thông qua kiến trúc SMP (Symmetric Multprocessor).

                Như các bác đã thấy thiết kế kiến trúc máy tính khó như vậy nên thông thường người làm thiết kế thích sử dụng các thiết kế đã có từ trước. Điều này không những làm giảm sai sót trong thiết kế, nó còn cho phép đánh giá hoạt động của kiến trúc dựa trên các số liệu thực tế có sẵn. Khi cần làm những thiết kế không có sẵn, người thiết kế cũng cố gắng sử dụng các thiết kế gần giống và thay đổi lại. Ví dụ như vi xử cell của IBM là chip đầu tiên sử dụng mạng token ring cho network on chip. Các kỹ sư của IBM đã sử dụng lại mạng token ring thông thường để làm nên mạng này. Nhiều thiết kế, và đánh giá có thể sử dụng lại nhưng cũng có một số phải làm mới. Bởi vậy lời khuyên đầu tiên của mình dành cho các bác sinh viên hay những người quan tâm là đọc thật nhiều những kiến trúc thực tế và những đánh giá về chúng. Sau đó chúng ta vận dụng tối đa những thiết kế này. Trong ngành này sáng tạo quá mạo hiểm nên hãy tránh những sáng tạo không cần thiết như tạo lại cái bánh xe. Để làm việc trong ngành này các bác không thể chỉ học một chút lý thuyết là đủ.

                Lời khuyên thứ hai của mình là phải trade-off tốt. Như các bác thấy, ngay cả những kiến trúc sư Intel vẫn đưa ra các đánh giá sai làm do trade-off không tốt, và thực tế làm được điều này rất khó. Các bác phải nhìn nhận đánh giá toàn bộ hệ thống trên nhiều mặt, nhiều chỉ tiêu kỹ thuật, nhiều khía cạnh.

                Ngày xưa ở VN mình cũng được học một chút về kiến trúc máy tính. Mình được dạy một chút về vi xử lý 286, một chút về Memory, DMA, UART... Những thứ này dạy cho sinh viết biết sơ về hoạt động của một số phần trong máy tính cũng tốt nhưng có lẽ vẫn chưa đủ để đào tạo người làm về kiến trúc máy tính. Rất nhiều những kiến trúc căn bản không được dạy như superscalar, cũng như việc nghiên cứu, đánh giá hoạt động của cả hệ thống với các chỉ tiêu khác nhau đã bị bỏ qua. Không biết hiện nay ở VN giảng dạy về kiến trúc máy tính như thế nào. Nếu có thể mong các bác sinh viên chia sẻ ý kiến của bản thân.

                Cheers.

                Comment


                • #98
                  Ôi thôi quần tím, ống màu
                  Giây lưng mua chịu khoe giàu với ai


                  Từ chối trách nhiệm:
                  Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
                  Blog: http://mritx.blogspot.com

                  Comment


                  • #99
                    Hi các bác,

                    Hôm nay mình hỏi các bác một câu hỏi, coi như cho vui vẻ cũng đồng thời để trao đổi kiến thức luôn. Câu này không khó cũng không dễ. Nói không khó vì không cần phải là người trong ngành, có kinh nghiệm nhiều năm mới trả lời được, nói không dễ vì có người trong ngành vẫn trả lời không chính xác. Các bác cứ tự do post ý kiến của các bác lên sai đúng không quan trọng. Mình sẽ đưa câu trả lời sau.

                    Các bác đều biết các vi xử lý thông thường đều có cache. Nhưng chip xử lý đồ họa (GPU) lại không có cache. Các bác có biết tại sao không?

                    Cheers.

                    Comment


                    • Chào bác, theo em thì các phép xử lý tính toán nhỏ ít dung lượng thì nó sẽ dùng bộ nhớ cache, vì bộ nhớ này truy cập nhanh nhưng dung lượng nhỏ, còn đối với xử lý đồ họa thì luôn có dung lượng lớn nên ko thể dùng bộ nhớ cache đc, như vậy phải ko bác nhỉ, em cũng amater thôi ^^

                      0988467839

                      Comment


                      • Hi bác Duonghoang,

                        Bác trả lời chính xác quá làm mất cơ hội của nhiều bác khác rồi. Nếu tính điểm 10 mình phải cho bác 9/10. Còn có một nguyên nhân nữa các bác thử suy nghĩ tiếp xem.

                        Cheers.

                        Comment


                        • Em nghĩ vẫn chưa ra, àh mà bác cho em hỏi tại sao bộ nhớ cache nhanh như vậy tại sao ko tạo ra dung lượng lớn hơn hả bác, hay từ từ giống như hồi xưa Ram từ 32M, 64M giờ lên đến cả mấy G Ram rồi

                          0988467839

                          Comment


                          • em không biết nhưng đoán mò thôi, cache cấu trúc thì không khác gì ram, chỉ là nó nhỏ hơn nên access time cũng nhanh hơn (tìm kiếm dữ liệu nhanh hơn) vì thế tùy mục đích sử dụng mà chọn kích cỡ cho phù hợp.

                            Câu của anh intran, em chịu, cũng đoán lung tung nhưng thôi ngồi google một lúc được đoạn này.

                            "Another important distinction in memory performance between the GPU and the CPU is the role of the cache. Unlike the cache on the CPU, the GPU texture cache exists primarily to accelerate texture filtering. As a result, GPU caches need to be only as large as the size of the filter kernel for the texture sampler (typically only a few texels), which is too small to be useful for general-purpose computation. GPU cache formats are also optimized for locality in two dimensions, which is not always desirable. This is in contrast to the Pentium 4 cache, which operates at a much higher clock rate and contains megabytes of data. In addition, the Pentium 4 is able to cache both read and write memory operations, while the GPU cache is designed for read-only texture data. Any data written to memory (that is, the frame buffer) is not cached but written out to memory.

                            What does this mean for general-purpose computation on GPUs? The read-write CPU cache permits programmers to optimize algorithms to operate primarily out of the cache. For example, if your application data set is relatively small, it may fit entirely inside the Pentium 4 cache. Even with larger data sets, an application writer can "block" the computation to ensure that most reads and writes occur in the cache. In contrast, the limited size and read-only nature of the GPU cache puts it at a significant disadvantage. Therefore, an application that is more limited by sequential or random read bandwidth, such as adding two large vectors, will see much more significant performance improvements when ported to the GPU. The vector addition example sequentially reads and writes large vectors with no reuse of the data—an optimal access pattern on the GPU."

                            Túm lại là cũng không dễ hiểu lắm nhưng cứ cho là do dữ liệu và các phép toán trên GPU khác nên cache không hiệu quả cho lắm (có thể do cache miss cao hoặc lắp thêm cache như CPU còn tăng latency)

                            Comment


                            • Hi bác Hoangduong,

                              Còn một lý do nữa mà người thiết kế không sử dụng cache cho GPU nhưng mình chưa muốn nói ra bây giờ. Mình muốn các bác suy nghĩ thêm rồi cùng trao đổi ý kiến. Bác hỏi chuyện cache, vậy để mình viết một bài giải thích cho các bác hiểu rõ thêm.

                              Trước hết mình sẽ nói về sự khác nhau giữa RAM và cache. RAM mà các bác thường sử dụng là DRAM, loại này không những dung lượng lớn mà lại còn rất rẻ. Phải nói là rẻ đến nỗi khó có thể rẻ hơn được. Công ty ngày xưa mình làm việc Qimonda phải đóng cửa cũng vì giá quá rẻ. Chuyện này nhân tiện kể cho mọi người cũng vui. Phải nói hồi đó các công ty sản xuất RAM giống hệt mấy nông dân trồng vải ở VN, được mùa thì mất giá, cuối cùng phải chặt bỏ cả vườn vải. Hồi trước khi DRAM mất giá, mấy công ty sản xuất DRAM lãi lớn lắm. Hồi đó Qimonda còn mà 1 trong 3 bộ phận chính của Infineon. Lúc đó bên COM (tức là nhóm làm về viễn thông) liêu xiêu vì mấy khách hàng lớn là Siemens, sau đó là BenQ đóng cửa, còn bên MEM (tức là Qimonda sau này) kiếm tiến như nước. Vậy là bên MEM tách ra thành lập Qimonda. Hồi đó Windows vista chuẩn bị ra mắt và mọi người kỳ vọng rằng hệ điều hành này sẽ dùng RAM một cách kinh khủng, nhu cầu nhất định rất lớn. Vậy là không chỉ Qimonda, mà Samsung, Micron, Elpida, và các hãng Đài Loan xây dựng nhà máy mới, mở rộng sản xuất. Kết quả người dùng quay mặt với Windows Vista, và cung về bộ nhớ quá thừa với cầu. Vậy là giá RAM giảm đến khoảng 78% trong thời gian đó. Mình nhớ không lầm thì giá một chip nhớ DDR2 512Mbit chưa đến 1 USD. Lúc đó mình cùng mấy đồng nghiệp nói chuyện với nhau, 1 wafer 30cm giá đến 1000 EURO (mới mua về chưa làm bất kì công việc gì). Vậy các bác bảo thiết kế sản xuất thế nào để có lãi cho nổi. Mà không sản xuất cũng không được vì nhà máy mỏ rộng, sản lượng lớn, nếu đóng cửa nhà máy, thì lấy tiền đâu trả lãi ngân hàng (ngày xưa đi vay tiền để xây nhà máy). Và kết quả thì các bác đã biết Qimonda đã đóng cửa.

                              Vậy là các bác thấy DRAM chip làm rẻ tiền như thế nào. Để giảm giá thành, diện tích DRAM phải rất nhỏ, công nghệ phải thật rẻ tiền. Diện tích một cell nhớ nhỏ nhất về mặt lý thuyết là 4F square (4 F bình phương) trong đó F là kích thước đường kết nối. Qimonda hồi đó sử dụng công nghệ folded bit-line nên diện tích cell là 8f square. Micron, Samsung sử dụng công nghệ open bit line nên diện tích là 6 f square. Tuy nhiên folded bit-line có khả năng chống nhiễu tốt nên có thể làm long bit-line nên có thể giảm diện tích của Sense amplifier, và công nghệ rẻ tiền hơn. Sau này Qimonda phát triển công nghệ buried wordline có thể giảm đến 4.5 f square (hồi mình còn ở Qimonda mình mới làm project sử dụng buried wordline 6 f square). Còn nói về công nghệ đơn giản chip DRAM chỉ có 4, hoặc 5 lớp kim loại làm dây dẫn. Metal Zero làm từ tungsten có điện trở lớn chỉ có thể dùng để kết nối ở khoảng cách gần. Metal last có chiều dầy lớn chỉ dùng cho nguồn vào đất. Cuối cùng chỉ còn lại 2, hoặc 3 lớp kim loại loại để routing tín hiệu (3 lớp kim loại chỉ dùng cho graphic memory để có hiệu suất cao).

                              Do giá thành DRAM rẻ như vậy đồng thời công nghệ sản xuất bộ nhớ DRAM khác công nghệ sản xuất chip nên thường các nhà sản xuất thích dùng DRAM bên ngoài hơn cache bên trong. Đây là nguyên nhân đầu tiên khiến cache không lớn.

                              Bây giờ mình nói một chút với các bác về cache. Thông thường cache được thiết kế từ SRAM. Cho đến bây giờ mình mới biết 2 loại không làm theo kiểu SRAM là eRAM hay embedded RAM và Z RAM hay Zero RAM. Embedded RAM làm giống như DRAM. Loại này có ưu điểm nhỏ hơn SRAM, nhưng tốc độ chậm hơn, phải refresh, và phải thêm một số bước vào quá trình chế tạo. eRAM được IBM khoái dùng nhất, và một số chip cho multimedia sử dụng. Ý kiến riêng của mình thì mình không thích eRAM. Công nghệ sản xuất bộ nhớ và công nghệ logic khác nhau rất nhiều khi đưa chung sẽ xẩy ra nhiều vấn đề. Một trong những điểm quan trọng nhất là DRAM yêu cầu leakage current phải rất nhỏ trong khi công nghệ logic có leakage current lớn. Bên cạnh đó các vi xử lý chạy thường rất nóng. Khi nhiệt độ tăng cao leakage current sẽ tăng theo hàm mũ. Để eRAM có thể hoạt động tốt người thiết kế phải hi sinh khá nhiều chỉ tiêu và mình không đồng ý với cách làm này. Z RAM là một công nghệ mới dựa vào tính nhớ của các transistor chế tạo trên công nghệ SOI (Silicon On Isolator). Loại này cũng chỉ cần 1 transistor cho một memory cell, tốc độ cao hơn DRAM nhưng nhỏ hơn SRAM. Hiện nay mình thấy không nhiều người sử dụng công nghệ SOI nên Z RAM không phổ biết lắm. Hãng sử dụng SOI lớn nhất hiện nay là AMD lại không sử dụng Z RAM. Thành thật mà nói mình không thích SOI lắm. SOI đắt đỏ và ưu điểm của nó cũng không quá nổi bật. SOI trước hết được sử dụng để giảm leakage current xuống bulk nhưng thực tế hiện nay leakage current lớn nhất là sub-threshold leakage current và gate leakage current. Ngoài ra SOI còn giảm parasitic capacitance của source và drain của transistor nhưng hiện nay tiêu thụ công suất và delay chủ yếu lại do các đường kết nối. Vậy nên SOI cũng không được nhiều người hâm mộ. Cuối cùng loại cache thông dụng nhất là làm theo kiểu SRAM. SRAM thực ra cũng có 2 kiểu. Kiểu thứ nhất sử dụng 4 transistor và 2 register. Hai điện trở thực chất chỉ là 2 đường polysilicon. Kiểu này có diện tích nhỏ nhưng leakage current rất lớn. Loại này chỉ dùng để làm SRAM mình chưa từng thấy loại này được sử dụng cho cache. Loại thứ 2 dùng 6 transistor và có diện tích lớn hơn DRAM nhiều. Chính điều này đã dẫn đến việc cache không thể có dung lượng lớn như memory.

                              Thật sự mà nói hiện này người thiết kế sử dụng cache, hoặc Scratchpad memory (SRAM array) rất nhiều và rất lớn, nhiều khi là thừa so với ứng dụng. Tuy nhiên do SRAM nhỏ hơn logic gate rất nhiều, lại dễ thiết kế dễ sử dụng nên việc tăng dung lượng cache là điều dễ hiểu. Tuy nhiên cache quá lớn cũng không phải hay. Thông thường để thu nhỏ diện tích SRAM array các transistor trong array có kích thước nhỏ hơn so với các transistor thông thường. Nói cách khác các transistor trong SRAM array không đảm bảo DRC. Trong trường hợp các transistor bị lỗi, người ta sẽ sử dụng redundancy để thay thế các memory cell lỗi. Tuy nhiên việc giảm kích thước các transistor này cũng làm cho leakage current tăng rất lớn. Trên một diện tích lớn của chip, bất kể chạy hay không chạy, lúc nào chip cũng tiêu thụ một dòng leakage current lớn vậy thì ai mà chịu nổi. Intel có một kỹ thuật đặc biệt là trong trạng thái nghỉ, họ giảm điện áp của SRAM array xuống. Khi điện áp giảm leakage current sẽ giảm theo hàm mũ, tuy nhiên trên SRAM array có thể xảy ra vấn đề lỗi dữ liệu. Khi nâng lại điện áp ban đầu một số Memory cell có thể không phục hồi được dữ liệu. Nhưng dù thế nào chăng nữa cache quá nhiều sẽ làm chip tiêu thụ công suất lớn, và đây lại còn là công suất lãng phí do leakage current.

                              Một điểm cuối cùng phải nhắc đến là cache lớn có hiệu suất nhỏ hơn so với cache nhỏ. Cái này rất dễ thấy vì register file có dung lượng nhỏ nhất lại chạy nhanh nhất, sau đó thì đến cache level 1, rồi mới đến cache level 2. Để tăng dung lượng SRAM người ta phải nối nhiều memory cell với nhau theo hàng và cột tạo ra kiến trúc long bit-line, và long word-line. Các đường word-line và bit-line có chiều dài lớn nên có parasitic capacitance lớn, dẫn đến việc charge và discharge các đường này rất mất thời gian. Hơn nữa word-line và bit-line cũng không phải muốn kéo dài bao nhiêu cũng được. Người ta phải chia nhỏ một memory array thành các sub array và truyền dữ liệu theo kiểu hierarchical. Kiểu này làm latency truy cập bộ nhớ lớn hơn. Vậy nên các bác thấy cache level 2 thường cần vài xung đồng hồ để truy cập dữ liệu. Nói tóm lại bộ nhớ lớn cũng làm ảnh hưởng đến hiệu suất.

                              Cuối cùng theo đánh giá của mình cache hay scratchpad memory vẫn sẽ tiếp tục tăng về dung lượng dù gặp phải một số vấn đề. Mình tin rằng về sau mọi người sẽ sử dụng SRAM array dưới dạng nhiều bank khác nhau (thay vì một array duy nhất) để giảm latency, tăng bandwidth cũng như đây chính là cách thiết kế locality. Vấn đề leakage current hiện nay vẫn chưa có cách giải quyết hữu hiệu nhưng có lẽ công nghệ sẽ thay đổi để đáp ứng yêu cầu của người thiết kế. Về vấn đề giá thành, mình tin chắc người thiết kế vẫn sẽ tiếp tục sử dụng DRAM bên ngoài làm bộ nhớ chính vì nó quá rẻ, và SRAM bên trong chip vẫn chỉ là cache hay scratchpad memory.

                              Các bác có thắc mắc gì xin cứ post lên. Nếu biết mình rất vui được trao đổi với mọi người.

                              Cheers.

                              Comment


                              • Hi các bác,

                                Bác tarzanaly nói về texture cache nếu mình không lầm thì người ta còn gọi là C cache hay Constant cache. Mình không làm về GPU nên không có nhiều kiến thức trong mảng này nhưng GPU chạy DirectX hay OpenGL theo kiểu Pipeline gồm Input assembler -> Vertex Shader -> Geometry Shader -> Setup and Rasterizer-> Pixel Shader-> Raster Operations/Output merge. Trong các bước này hầu hết đề tính toán với dữ liệu đầu vào cực kỳ lớn. Các ảnh đồ họa trên máy tính của các bác được tạo thành từ rất nhiều những hình khối nhỏ. Thường GPU chia những hình khối này thành những tam giác rất nhỏ. Các tam giác này được sắp xếp trên một không gian ba chiều. Khi chơi game các hình khối này xoay chuyển trong không gian ba chiều làm ảnh ở những góc nhìn khác nhau sẽ khác nhau. Thêm vào đó ngươi ta còn sử dụng hiệu ứng ánh sáng, phản xạ để tạo cảm giác thật. Nếu mình không lầm GPU thường tính toán ánh sáng phản xạ ba lần. Nói tóm lại GPU tính toán dữ liệu rất lớn cache chẳng có nghĩa lý gì. Cái này bác Hoangduong nói chính xác.

                                Còn điểm thứ hai để mình gợi ý các bác. Các bác biết là GPU có băng thông cực lớn. GPU thường sử dụng 256 đường dữ liệu nối vào bộ nhớ. Graphics RAM cũng có tốc độ lớn hơn nhiều so với RAM thông thường, nhưng latency của graphics RAM cũng tương đối lớn. Ở đây người thiết kế đã sử dụng một kỹ thuật đặc biệt để việc dùng băng thông lớn của bộ nhớ có thể bù đắp việc thiếu hụt cache. Các bác thử suy nghĩ xem họ làm thế nào.

                                Cheeers.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X