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

  • #61
    Ở đây đang nói về kiến trúc mới vì vậy câu trả lời cần thiết là tính khả thi và hiệu năng có đạt được mức mong đợi hay không. Câu trả lời hoàn toàn khác với các kiến trúc đã được chứng minh hiệu quả như Z10 của IBM cái mong đợi ở đây là nó đã được cải tiến những gì. Hai câu trả lời cần thiết khác nhau vì thế nên cách trả lời phải khác nhau.

    Ok sẽ nói qua vài điểm về hệ thống này. Đễ tránh xây nhà trên cát sẽ đi từng bước thiết thực một.



    Đây là phân tích đầu tiên về môi trường mà thiết bị X sẽ hoạt động.
    Mục đích của thiết kế này là để làm phần A, ta tạm cho nó là hoàn hảo. Chỉ bàn đến phần B ở bước này. Đầu tiên bạn hãy nói ý tưởng giải pháp khắc phục những điểm bất cập ở B, hệ thống mà giải pháp X sẽ phải dựa vào nó. Sau đó ta sẽ phân tích tiếp bước 2.
    Attached Files
    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


    • #62
      Hi các bác,

      Mình đưa paper về kiến trúc vi xử lý Z10 lên để mọi người có cái nhìn khách quan xem những người làm về kiến trúc máy tính khi trình bày thì họ sẽ giới hiệu sâu, rộng ở mức nào thôi. Bác ITX đừng tưởng họ sẽ đem nguyên bản thiết kế đến từng transistor vẽ ra cho bác.

      Bác ITX nói về những điểm cần khắc phục..., mình tự hỏi không biết có phải bác muốn mình trình bày lại toàn bộ những thứ mình đã viết không vậy. Những thứ này mình đã viết ngay từ đầu rồi. Bác thấy trong kiến trúc có điểm nào bất hợp lý thì bác nói thẳng ra để cùng trao đổi. Bác cứ nói những thứ mình viết chẳng có gì đặc biệt, nhưng mình thật sự nghi ngờ kiến thức về computer architecture của bác. Hoặc bác không đọc những thứ mình viết hoặc bác đọc mà không hiểu gì.

      Nhân tiện mình cũng muốn nói lại computer architecture theo mình đánh giá là rất khó, rất trìu tượng. Với thiết kế mạch số ta chỉ cần viết Verilog code và chạy simulation là biết thiết kế có chính xác hay không. Với thiết kế analog, hay digital ở mức thấp ta cũng chỉ cần chạy Hspice là biết kết quả. Kiến trúc máy tính là một tổng thể từ ứng dụng, lập trình, phần cứng... Đánh giá một thứ chưa có trên cả một hệ thống phức tạp như vậy là điều rất khó và nhiều khi chỉ là linh cảm của người kỹ sư. Kiến trúc Itanium của Intel thất bại đốt của Intel không biết bao nhiều tỉ USD cũng như kiến trúc Cell của IBM là những ví dụ chứng mình rõ ràng nhất. Những kiến trúc sư phần cứng của Intel và IBM chắc chắn là những người thuộc loại đầu ngành vẫn đưa ra những ý tưởng sai lầm đơn giản vì lĩnh vực này quá khó. Những so sánh theo kiếu vi xử lý này nhanh gấp 2 lần vi xử lý kia chỉ là cách nói của những người làm marketing cho khách hàng dễ hiểu vì người làm kỹ thuật không ai không biết làm sao có thể nói 2 quả cam bằng 1 quả táo. Người trong ngành cũng thường xảy ra những tranh luận lớn khó phân thắng bại. Cách đây khoảng 20 năm kiến trúc CISC và RISC tranh cãi kịch liệt và cần rất nhiều thời gian để phân thắng bại. Bản thân mình chưa được công ty cho làm về kiến trúc (cũng không có gì lạ), và mình cũng phải nói lĩnh vực này rất khó. Vậy nếu như bác ITX thật sự có kiến thức trong lĩnh vực này thì bác hãy post bài có tính xây dựng. Đừng để như bác Paddy cũng nói nhiều người trên mạng hay lừa bịp.

      Cheers.

      Comment


      • #63
        Theo tôi nghĩ thì bạn Intran chỉ giải thích về cấu trúc phần cứng của RP (Reconfigurable Processor) và chủ yếu là PE (Processing Element, có người gọi là Processing Unit). Tôi có tin tức liên quan với RP khi làm việc với TI và ST cùng với hãng Coware (hiện giờ là Synopsys). Để tôi thử giải thích thêm với những tin tức mà tôi thâu nhập trong quá trình làm việc này. Hy vọng các bạn có thể hiểu thêm về những bài mà bạn Intran đã viết.

        1) Tại sao dùng RP?
        Theo TI thì vì video standard thay đổi quá lẹ cho nên cần có một chút linh hoạt trong thiết kế để đáp ứng kịp thời.

        2) Tại sao không giữ thiết kế ở DSP mà lại chuyển qua RP?
        DSP có lợi thế là linh hoạt nhưng quá chậm cho những video standard mới sau này (H.264). Để đáp ứng với nhu cầu về tốc độ, cần phải chuyển những đối tác từ firmware/software qua hardware.

        3) Cấu trình của RP
        Từ code nguồn (C/C++, đã được xác minh ở DSP), chia ra thành nhiều hàm (function) để mỗi hàm là một PE/PU. Trong code nguồn có nhiều loop và branch cho nên hàm hoặc PE/PU phải được chia sao cho có hiệu quả. Coware được dùng để giản tiện hóa vấn đề này. Ngoài ra nó còn synthesize ra RTL, tạo instruction set và những công cụ để làm software điều khiển RP. Hình dưới đây, tôi lấy từ Coware site.



        Coware có một trở ngại là không thể giúp người làm chuẩn được thời gian. Như trên hình vẽ, các bạn sẽ không thấy đề cập tới "target technology" (có liên hệ tới timing).

        Nếu các bạn chưa tìm hiểu về High Level Synthesis thì những lời giải thích này vẫn còn mơ hồ nhưng tôi hy vọng nó thêm chi tiết để dể hiểu những bài mà bạn Intran đã viết hơn.
        Attached Files
        Chúc một ngày vui vẻ
        Tony
        email : dientu_vip@yahoo.com

        Comment


        • #64
          Hi các bác,

          Bác Tonny viết rất chính xác. Mình xin được giải thích thêm một chút cho rõ.

          Reconfigurable Processor (loại bác Tonny giới thiệu) có thể coi là phần nâng cấp của FPGA. Trên thực tế FPGA có thể sử dụng để xử lý dữ liệu nhưng loại này làm việc ở mức bit thông qua LUT nên trở nên kém hiệu quả với những tính toán số học (cộng trừ nhân chia...). Để khắc phục nhược điểm này người ta thay thế các LUT bằng các processor đơn giản. Ngoài ra để tạo khả năng dynamic reconfigurable, người ta sử dụng kỹ thuật context switching như mình đã có lần nhắc đến. Chính vì vậy loại này được làm để xử lý các tín hiệu số, thường là tín hiệu video, và graphics vì các ứng dụng loại này yêu cầu performance cao. RP cạnh tranh trực tiếp với DSP. Đúng như bác Tonny nói DSP có hiệu suất kém hơn vì nó cũng chạy lệnh tuần tự như vi xử lý. Tuy nhiên RP không thu được thành công lớn vì vấn đề lập trình và compiler. Một số code đã có sẵn trên DSP và người lập trình không muốn thay đổi nhưng code này, và họ cũng không quen sử RP dẫn đến việc RP không cạnh tranh lại với DSP. Phần mềm coware mà bác Tonny giới thiệu chính là để synthesize software code cho phần mềm cũng như RP cho phần cứng. Mình không có kinh nghiệm gì về mảng này nên không giám nói.

          Kiến trúc vi xử lý của mình hơi khác biệt so với loại bác Tonny nói đến. Mục tiêu của mình là để làm một vi xử lý chạy general purpose application, mà ở đây là database application. Xử lý tín hiệu số đơn giản hơn xử lý loại này khá nhiều vì dữ liệu ở dưới dạng array trong bộ nhớ có thể đọc dữ liệu lên dễ dàng. Dữ liệu đầu vào, ra luôn xuất hiện trong các xung đồng hồ nên việc đồng bộ hóa tương đối dễ. Với cơ sở dữ liệu, dữ liệu được lưu trữ thông qua pointer dạng B+ tree hoặc link-list. Dữ liệu đọc lên không phải lúc nào cũng xuất hiện tức thời mà tùy thuộc nó hiện đang nằm ở cache, memory, hay bên ngoài mạng, ổ cứng... Chính vì vậy mình đã áp dụng một số kỹ thuật đặc biệt làm mềm hóa kiến trúc RP mà các công ty thường dùng như bác Tonny đã trình bày.

          Trong phần này đúng là mình không nói nhiều đến phần mềm và đây cũng là điểm yếu nhất trong phần thiết kế. Đơn giản vì mình không có kiến thức sâu về phần mềm hay nói thẳng ra mình không biết làm phần mềm. Thay vào đó mình dự định làm driver cho vi xử lý. Driver chỉ là một library gồm một nhóm các hàm được viết tối ưu cho cơ sở dữ liệu. Các hàm này mình chọn là SQL command. SQL command được sử dụng phổ biến trong hầu như tất cả các relational database application. Các hàm này sẽ được viết bằng machine code và rất tối ưu. Người lập trình chỉ việc gọi các hàm này khi viết chương trình. Điều này cũng tương tự như GPU xử dụng DirectX và OpenGL làm library.

          Rất mong các bác đóng góp ý kiến.

          Cheers.

          Comment


          • #65
            Tôi đang nói đến bước đầu tiên và cơ bản khi bạn muống thiết kế một microprocessor, bước này là xác định hệ thống và môi trường mà giải pháp X này sẽ phải chạy trên đó, qua phân tích này bạn sẽ biết được hạn chế, nhu cầu .v.v... ở đây ta chưa vội nói đến kiến trúc của giải pháp X chỉ mới là bước đầu tiên xác định môi trường.
            Một con microprocessor muốn run thì nó phải dựa trên một cái gì đó và việc ở bước đầu tiên và cơ bản này là phân tích xem những thứ mà X dựa vào ra sao, có hạn chế gì ...v.v.v. Ở những bước sau sẽ phân tích kiến trúc của "Innovative microprocessor architecture". Việc ở đây ( bước này ) là phân tích "môi trường" để có dữ liệu cơ sở để "Innovative microprocessor architecture" của bạn. Bạn muốn Innovative bạn phải qua bước này
            . Đễ tránh xây nhà trên cát sẽ đi từng bước thiết thực một.


            Cái này ITX không cần, có lẽ bạn cần.
            Bác ITX đừng tưởng họ sẽ đem nguyên bản thiết kế đến từng transistor vẽ ra cho bác
            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


            • #66
              Với " ước " là X sẽ là giải pháp database application hoàn hảo, vậy để đáp ứng cho X thì phần B sẽ phải cần làm những gì ? Hy vọng bạn có thể phân tích thứ này trước để phục vụ cho "Innovative microprocessor architecture" của bạn. Nếu có thời gian ITX sẽ phân tích cùng bạn nhưng tiếc rằng cái đó hiện giờ đang quý hiếm với ITX.
              Có một ý muốn nói ở đây ITX không đọc kỹ những thứ bạn viết vì một giải pháp không có một nền tảng rõ và vững thì cũng giống như một thân cây bị mục gốc, một căn nhà xây trên cát cho dù đẹp có được tô vẽ thế nào chăng nữa thì một gọn gió nhỏ cũng tan vỡ mà thôi, quan tâm đến những thứ phù du như thế để làm gì phải không.
              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


              • #67
                Bác ITX,

                Mình là người trong ngành, dù sao cũng có thể đánh giá được trình độ người viết khi đọc bài của họ. Đọc bài viết của bác, mình giám khẳng định 100% bác chẳng có chút kiến thức gì về kiến trúc máy tính hết. Họa chăng bác có thể biết sử dụng mấy con vi điều khiển, viết code, nạp ROM.. Mình tin chắc rằng bác sẽ chẳng viết được bài nào mang tính xây dụng trong thread này, vì bác chỉ cố tỏ vẻ ta đây thôi.

                Bác đã không có kiến thức gì về kiến trúc máy tính lại chê bai người làm trong ngành, bác không thấy xấu hổ sao. Bác có thể không cần học những kiến thức mới, nhưng bác nên để những người khác tiếp cận kiến thức mới.

                Bác Tony bài viết trước mình viết sai tên bác. Sorry bác nhiều, mong bác thông cảm.

                Cheers.

                Comment


                • #68
                  ok nếu bạn đã nói vậy thì sẽ chỉ ra điểm bất cập ngay cả ở bước cơ bản này.
                  Trong ứng dụng database application có 2 chi phí quan trọng là truy xất ,di chuyển dữ liệu cấp thấpxử lý nó. Trong ứng dụng này giả định là X ( Innovative microprocessor architecture này ) là hoàn hảo không có vấn đề gì.
                  X muốn làm việc nó phải dựa vào server (B) , B sẽ phải phục vụ nó bằng cách truy xất ,di chuyển dữ liệu cấp thấp ( cấp hardware ) như mọi người biết kiến trúc server hiện tại rất yếu về khoản này nhưng X không giảm tải cho B mà lại tăng tải lên ??? . B sẽ chuyển dữ liệu thô này chuyển đến X chờ xử lý và lấy về sau đó lại phải tiến hành di chuyển dữ liệu cấp thấp để lưu trữ hay xuất ra một dạng nào đó. Nhận xét sơ bộ về quá trình sẽ thấy X tuy mạnh nhưng không thể vượt mặt server, vấn đề cần thiết là truy xuất ,di chuyển dữ liệu cấp thấp lại không được giải quyết mà giải quyết cái không đâu là xử lý dữ liệu đây không phải là vấn đề bức thiết của database application hiện tại vì kiến trúc server hiện tại không cần nhu cầu lớn về khoản này.
                  database application khác với GPU application, GPU application nhu cầu lớn nhất là xử lý, database application là di chuyển. Ở đây cũng chưa đả động đến cái cổ chai PCI Express hay những thành phần bức thiết khác của hệ thống.

                  Đến đây X coi như đã bị phá sản, có lẽ không cần thiết phải làm bước tiếp theo nữa. Và đó là lý do tại sao là xây nhà trên cát. Chưa cần phải đi chuyên sâu vào phân tích thiết kế ASIC và nhiều cái cao siêu khác, giải quyết cái cơ bản hãng.

                  Ngoài Hardware còn cần phải có Software impact để có thể tạo ra một ứng dụng nhưng như bạn nói bạn không có khả năng về Software. Vì thế sẽ không bao giờ có một ứng dụng X
                  Vậy bàn/ đọc/ viết cái này làm gì ? rảnh rỗi chăng?

                  Nếu nhận định của ITX không chính xác, thì còn có nhận định của tụi VC (Venture Capital) nên nhớ tụi này sống bằng cách đầu tư vào những thứ như thế này đây . Bọn này có cả một bộ máy chuyên gia được trả tiền để thẩm định mọi mặt của một dự án, một ý tưởng .... chỉ cần thấy có lợi và có khả năng thì bọn này sẽ không bao giờ bỏ qua. Nhưng cái " Innovative microprocessor architecture " này thì bị vài bọn như thế cho đi về nơi xa ( ex: sọt rác ) thì cũng phải có lý của bọn nó. Và nhận định của ITX không thể bằng bọn VC đó được

                  ================================================== =
                  ITX chưa và không bao giờ ngăn cản người khác làm bất kỳ một việc gì vì đó là tự do của họ , Đôi khi chỉ thấy một vài việc kỳ khôi và vớ vẩn thì ngứa miệng lên tiếng còn có nghe/tin/hiểu hay không là quyền của họ.
                  Có một câu mà người Việt hay nói " Người ngu là người không biết mình ngu, người khôn biết mình ngu, người ngu biết mình ngu thì không còn là người ngu nữa "

                  Xem lại ITX cũng ngu, cứ để mọi việc quay cuồng, luổn cuẩn như vậy đi, cứ để cái " Innovative microprocessor architecture " này thật là lý tưởng, thật hoàn hảo đi, cứ để người người ngày ngày xách giỏ đi xin VC đi, cứ để cái suy nghĩ rằng mình thông minh, xuất xắc hơn tất cả các kỹ sư trên thế giới đi. Nói vào nói ra làm gì thôi rút kinh nghiệm
                  Last edited by itx; 03-08-2010, 15:31.
                  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


                  • #69
                    Hi các bác,

                    Mình đã trình bày về kết nối giữa main processor và data base co-processor thông qua PCI express connection link rồi nhưng có lẽ chưa rõ nên bác ITX chưa hiểu. Trong thiết kế locality là một trong những yếu tố rất quan trọng. Tất cả các đường kết nối dù tốc độ cao đến đâu cũng vẫn là low bandwidth, high latency, high power... nên người thiết kế cần hạn chế sử dụng các đường kết nối càng nhiều càng tốt. Ở đây mình xin được trình bày rõ lại việc loại bỏ ảnh hưởng của low bandwidth, và high latency của PCI express connection.

                    Database co-processor có sẵn dedicated memory trên board và nối trực tiếp vào memory này. Cơ sở dữ liệu sẽ được main processor đưa lên dedicated memory của co-processor qua pci -express lúc ban đầu. Sau đó main processor chỉ đưa các request lên co-processor để điều khiển. Các request này của người dùng chỉ là những yêu cầu như tìm kiếm, sửa đổi có dung lượng rất nhỏ nên PCI express connection không gặp vấn đề gì. Co-processor sẽ xử lý dữ liệu nằm trên dedicated memory của mình, và gửi trả main processor kết quả tìm kiếm. Kết quả gửi trả về cũng rất đơn giản chỉ là những những giá trị sau khi đã tìm kiếm nên cũng có khối lượng không lớn. Trong trường hợp dữ liệu của cơ sơ dữ liệu không nằm trên dedicated memory thì main processor mới phải đẩy dữ liệu mới lên tương tự như khi máy tính thông thường cần dữ liệu nhưng không có trên bộ nhớ thì phải đọc từ ổ cứng lên. Trường hợp này xảy ra không nhiều nên không làm giảm hiệu suất của toàn hệ thống một cách đáng kể. Hiện nay mình không có ý định làm SMP (Symmetric Multiple Processor) ngay từ đầu nên toàn bộ dữ liệu sẽ nằm trên dedicated memory.

                    High latency là một vấn đề lớn ảnh hưởng đến nhiều kiến trúc ví dụ như CUDA chịu ảnh hưởng này rất lớn khi chương trình chuyển từ multiple thread sang single thread. Điều này mình đã có cách khắc phục đơn giản. Latency là điều không tránh được nhưng có thể che dấu nó (hide latency). Trong thời gian co-processor xử lý các lệnh thứ nhất (cần rất nhiều thời gian để tìm kiếm, xử lý dữ liệu), main processor đẩy các lệnh mới lên thông qua PCI express. Các lệnh mới này sẽ đưa và Instruction buffer của Processing Element của co-processor. Sau khi co-processor xử lý xong các lệnh đầu tiên và trả kết quả về main processor, PE sẽ nạp lệnh mới vốn đã có sẵn ở trên instruction buffer của nó, và thời gian nạp lệnh mới đương nhiên rất ngắn.

                    Nói tóm lại việc sử dụng PCI express connection link không ảnh hưởng gì đến hoạt động của database co-processor. Vấn đề tiêu thụ công suất của PCI express connection là điều không thể tránh khỏi vì ta phải thiết kế theo các chuẩn có sẵn.

                    Trong thread này mình chỉ trình bày kiến trúc phần cứng của co-processor để chia sẻ kiến thức cùng các bác. Mình không biết làm phần mềm không có nghĩa kiến trúc phần cứng thiết kế ra kém. Mình là người thiết kế phần cứng nên chuyện không biết làm phần mềm cũng chẳng có gì lạ. Cho đến bây giờ mình cũng chưa thấy ai vừa thiết kế phần cứng giỏi vừa viết phần mềm giỏi. Nói như vậy không có nghĩa những người làm phần cứng như mình không biết gì về lập trình. Bọn mình sử dụng Verilog, SystemC rất nhiều, nếu có cần viết trên C++ chắc cũng không quá khó nhưng đương nhiên chẳng là gì so với những kỹ sư phần mềm được đạo tạo chuyên nghiệp bên này. Nếu trong số các bác có người giỏi phần mềm, chuyên về database application, mình rất mong các bác cho ý kiến.

                    VC không chấp nhận có nhiều nguyên nhân khác nhau các bác ạ. Bọn họ không phải là người làm kỹ thuật nên không hiểu những vấn đề kỹ thuật. Bọn họ chỉ yêu cầu có prototype chạy trước mặt họ để họ đánh giá. Cái này hi vọng sắp tới mình sẽ có. Mình không thích chỉ trích cá nhân nên xin rút lại lời nói bác ITX không có kiến thức gì về kiến trúc máy tính. Thread này mình chỉ muốn chia sẻ với mọi người kiến thức và kinh nghiệm thực tế. Khả năng của mình đến đâu chắc nhiều bác ở đây có thể tự đánh giá.

                    Cheers.

                    Comment


                    • #70
                      Sáng nay rảnh được vài h nên tiếp tục.

                      Ban đầu ITX đã có nhiều nghi ngờ về cái này sau đây sẽ nói một vài nghi ngờ về nó.
                      * Cái " Innovative microprocessor architecture " này là đồ của Tilera Corporation

                      hãy xem sơ bộ kiến trúc của TILE

                      và kiến trúc của thứ này. ( X )

                      Rất giống nhau gần như là một. Cái này cũng không hảnh nhưng khi đọc vài post về X này thì giống nhau quá có cảm tưởng đang đọc tài liệu PR của Tilera dịch sang tiếng việt.

                      Giải pháp của Tilera : TILEncore

                      TILEncore with Optical Interfaces


                      TILEncore with CX4 Interfaces

                      sản phẩm thực tế


                      TILE-Gx™ Overview ( file pdf đính kèm )

                      Về mặt giải pháp cho sản phẩm cuối, kiến trúc microprocessor. Đều trùng khớp đến đáng kinh ngạc, khi tonyvandinh nói đến patent và sue ITX nghĩ là nói về vụ này nhưng xem ra không phải.

                      Điều đáng lưu ý là ngay cả Tilera ( TILEPro64 ) cũng không dám nhắm vào thị trường database application ( chỉ dám đánh vào Network flow classification, Network forensics, Intrusion Prevention Systems (IPS), Deep Packet Inspection (DPI), Video and audio encoding / transcoding, Video stream processing ) vì những hạn chế cố hữu của server cổ điển. Trong thời gian gần đây khi phát triển thêm Cloud Computing dựa trên TILE-Gx với số lõi tối đa lên đến 100 lõi thì mới dám nhắm vào Databases vì đã loại bỏ hoàn toàn server cổ điển.
                      http://www.tilera.com/solutions/cloud_computing

                      Cái Tilera này cũng không mới
                      http://www.pcworld.com.vn/articles/t...se-co-512-loi/
                      http://vietbao.vn/Vi-tinh-Vien-thong.../65101448/217/

                      Trên đó là một số nhỏ những nghi vấn và các bạn có thể tự rút ra kết luận cho mình.
                      Nếu có thời gian ITX sẽ nói tiếp về các nghi vấn về con người và cách làm việc nhưng đang có việc phải đi nếu rảnh sẽ tiếp tục.
                      Attached Files
                      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


                      • #71
                        Chào bác ITX,

                        Em thấy bác nói hai cấu trúc trên giống nhau là chưa hợp lý vì cấu trúc "TILE" gần như là một vi xử lý 64-bit độc lập (ALU + MEM), còn PE của bác lntran chỉ là một đơn vị xử lý. Nói cách khác em thấy cấu trúc bác giới thiệu nó thuộc loại multicore và theo như nhà cung cấp nói thì họ có ưu điểm là đã improve kết nối giữa các core bằng iMesh, còn theo những gì em hiểu từ những bài viết của bác lntran thì cấu trúc của bác ấy không phải là multicore. Rất mong các bài phân tích tiếp từ các bác.

                        Thân mến.

                        Comment


                        • #72
                          Hi các bác,

                          Mình phải thành thật nói bác ITX chẳng có chút kiến thức gì về kiến trúc máy tính hết. Bác nhìn vào 2 cái hình vẽ rồi nói 2 kiến trúc giống nhau. Vậy sao bác không nói USD cũng giống VND, bác Hồ cũng giống Washington. Kiến trúc Tilera này mình đã từng nói đến với các bác rồi.

                          Nguyên văn bởi lntran Xem bài viết
                          Hi các bác,

                          Một loại khác thực sự là kiến trúc multi-core ví dụ như Tilera processor có chứa hàng trăm vi xử lý trên 1 chip. Loại này nhiều khi được gọi là many core để phần biệt với loại multi-core thông thường. Loại này như mình có lần đã từng post lên, đơn giản ngày xưa multi processor là nhiều processor trên cùng một board, ngày này nhiều core trên cùng một die. Nói như vậy cũng không phải loại này chẳng có một chút innovative gì hết. Về processor core thì thật sự chẳng có gì. Thông thường mấy loại này hay dùng MIPS 2-way superscalar. Điều quan trọng nhất chính là network-on-chip kết nối các processor core này. Network này không chỉ trao đổi dữ liệu thông thường mà còn có nhiệm vụ cache coherency, đảm bảo cùng 1 dữ liệu xuất hiện trên cache của nhiều core vẫn có thể hoạt động đúng. Yêu cầu về network này vừa phải low latency, high bandwidth... vừa phải nhỏ gọn đơn giản. Giới thiệu về network này e rằng một quyển sách cũng chưa đủ. Nhưng vấn đề của vi xử lý loại này là ai sẽ sử dụng hàng trăm core khi phần mềm chỉ chạy 1 thread. Mình biết rằng loại này được đề xuất dùng làm network processor tức là để truyền các data package theo một số các protocol định sẵn. Các package riêng biệt có thể được xử lý bằng các core riêng biệt. Tuy nhiên communication protocol thường là được chuẩn hóa và có thể làm cứng bằng ASIC hoặc có thể sử dụng FPGA khi chưa có ASIC. Một thực tế rõ ràng, khi cứng hóa các chuẩn này bằng ASIC thì hiệu suất chạy sẽ cao hơn loại dùng phần mềm chạy trên vi xử lý nhiều lần, và đương nhiên chẳng ai sử dụng các chip Intel hay AMD dùng cho network hết. Do vậy mình tin rằng những vi xử lý loại này chỉ có thể chiếm được một phần thị trường về network processor. Mình cũng nghe nói Tilera định dùng vi xử lý của họ làm webserver. Ý tưởng này rất OK những có bao nhiêu khách hàng cần đến một vi xử lý với hàng trăm core để chạy webserver khi web application là một yêu cầu đơn giản và các vi xử lý của Intel đã thừa khả năng đáp ứng. Cuối cùng họ cũng định dùng vi xử lý của mình cho các ứng dụng cloud computing. Tuy nhiên cho đến bây giờ mình chẳng thấy mấy ai quan tâm đến cloud computing. Cloud computing có thành hiện thực hay không vẫn chưa ai biết, và kể cả khi nó thành hiện thực thì các vi xử lý của Intel cũng sẽ chẳng dừng lại ở mức 4/8 core.

                          Cheers.
                          Tilera là hàng trăm vi xử lý hoạt động độc lập kết nối qua mạng cache coherency network on chip. Loại này phải chạy multiple thread, và đương nhiên nó không nhằm mục tiêu sử dụng cho database application. Vi xử lý của mình là loại chạy single thread và nhằm chạy database application. Hai loại này khác nhau như cái xe hơi với cái tầu hỏa mà bảo giống nhau thì thật không còn gì để nói. Bác ITX càng cố chứng minh mình giỏi chỉ càng làm cho mọi người cười bác thôi.

                          Cheers.

                          Comment


                          • #73
                            em thì em không hiểu hết cái bác intran nói hay đơn giản là không "hiểu", nhưng nói thật là đọc xong mấy bài đầu, em cũng không có hứng thú theo dõi lắm vì em không biết và đọc vài bài giới thiệu của bác cũng không dễ tiếp cận lắm. Cho nên là em thấy có nhiểu nhầm thì cũng bình thường thôi, mà lại càng tốt đằng khác, vì bác mất công giải thích lại, người đọc thấy rõ ràng hơn và dễ hiểu hơn. Điển hình là giờ em mới dám nói em không hiểu hết . Thiết nghĩ bác nên vui chứ chẳng phải tức giận làm gì.

                            Comment


                            • #74
                              Bây giờ lại có time để tiếp tục.

                              Lúc chiều nãy càfe chơi cờ ngoài công viên có bà hàng nước nói câu này nghe hay hay
                              " Tôm kia cứt lộn trên đầu
                              Lại chê cá chốt hàm râu dính bùn "

                              Đúng là Việt Nam bà hàng nước bị xem là tầng lớp thất học nhưng ăn nói cũng rất có Văn Hóa

                              Thôi không nói lan man nữa bắt đầu thôi.

                              --------------------------------------------

                              Như đã nói ở phần trước có 2 ý chính là: giải pháp cho sản phẩm cuối và kiến trúc microprocessor.

                              Đầu tiên sẽ nói giải pháp cho sản phẩm cuối vì nó là nền tảng cho những cái khác.

                              Như đã nói Tilera ( TILEPro64 ) không dám nhắm vào thị trường database application vì những hạn chế cố hữu của server cổ điển. Những hạn chế này vấn đề lớn nhất là cổ chai PCI Express và những mạch giao tiếp ổ cứng và các thiết bị phụ trợ, không phải nằm ở tại TILEncore vì sức mạnh xử lý của TILEPro64 dư sức làm việc xử lý này.
                              Tình trạng này giống như bạn bị kẹt xe cho dù tốc độ xe bạn nhanh tới đâu chăng nữa thì cũng chỉ có cách lết từng bước một.
                              TILE có mạnh có nhanh đến đâu cũng phải đi sau và chờ ông thần xe lu mang tên server.
                              Tilera buộc phải công nhận điều này khi các thử ngiệm thực tế trên sản phẩm thực đều cho ra một kết quả đáng buồn như nhau.
                              Một kiết luận là database application chạy trên PCI Express chết từ ngay lúc nó chưa được sinh ra và Tilera phải chấp nhận điều đó.
                              ITX hy vọng lntran đừng cãi chày cãi cối rằng ứng dụng database application qua PCI Express là có thể hoạt động tốt và không bị vướng vào cái gì với sản phẩm X tưởng tượng này ( nói là tưởng tượng vì X này chưa có đến một prototype ) trong khi Tilera với giải pháp của mình đã làm thực tế và đã phải bỏ. Khi mà giải pháp cho sản phẩm cuối hoàn toàn giống nhau.
                              cái X này coi như đã bị phá sản ngay tại đây.

                              Kiến trúc microprocessor.

                              Để nói về cái này đầu tiên phải làm rõ một vài khái niệm:

                              * PE = Processing element .
                              Cái này là gì ? nó có ý là gì ? Hãy xem qua định nghĩa của intel
                              Processing element

                              A generic term used to reference a hardware element that executes a stream of instructions. The context defines what unit of hardware is considered a processing element (e.g., core, processor, computer). Consider a cluster of SMP workstations. In some programming environments, each workstation is viewed as executing a single instruction stream; in this case, a processing element is a workstation. A different programming environment running on the same hardware, however, may view each processor or core of the individual workstations as executing an individual instruction stream; in this case, the processing element is the processor or core rather than the workstation.
                              http://software.intel.com/en-us/arti...ssing-element/

                              Tạp dịch bằng google cho nhanh vì có một số bạn cần
                              Chế biến nguyên tố

                              Một thuật ngữ chung được sử dụng để tham khảo một yếu tố phần cứng thực hiện một dòng các hướng dẫn. ngữ cảnh xác định những gì đơn vị phần cứng được xem là một yếu tố chế biến (ví dụ, lõi, bộ xử lý, máy tính). Xem xét một cluster của các máy trạm SMP. Trong một số môi trường lập trình, mỗi trạm làm việc được xem như thực hiện một dòng hướng dẫn duy nhất, trong trường hợp này, một yếu tố chế biến là một máy trạm. Một môi trường lập trình khác nhau chạy trên cùng một phần cứng, tuy nhiên, có thể xem mỗi bộ xử lý hoặc cốt lõi của các máy trạm làm việc cá nhân như thực hiện một dòng hướng dẫn cá nhân, trong trường hợp này, yếu tố chế biến là bộ vi xử lý hoặc lõi thay vì máy trạm.

                              Processing element (PE) mang một nghĩa lớn trong đó core, processor, computer.
                              Với định nghĩa của intel có thể nói pic16f, atmega, Pentium 4 là 1 PE vì một thời điểm chỉ executes 1 stream of instructions và Intel Core 2 Conroe có 2 PE. vì một thời điểm executes 2 stream of instructions.
                              Và đó là khái niệm về PE. ITX nghĩ nói như thế là đã rõ ràng về PE rồi.

                              single thread và multiple thread
                              Cái này quá đơn giản chắc không cần phải nói. Chỉ đơn giản là single thread tại một thời điểm chỉ có thể chạy một processing, stream, instructions còn multiple thread thì tại một thời điểm có thể thực hiện từ 2 processing trở lên.

                              Như vậy khái niệm thread và Processing element rất giống nhau, khác là muột thứ ám chỉ nhiều hơn đến phần mềm và một cái thì thiên về phần cứng.

                              Đi vào phân tích thoáng qua kiến trúc microprocessor

                              kiến trúc của TILE như trên đã nói bao gồm một dãy các PE ( trong ngữ cảnh này các processor tile là PE ) mỗi một PE là một bộ xử lý 64bit có công dụng chung như là x86 ( rõ hơn hãy xem qua file pdf đã posst)

                              Kiến trúc X này cũng bao gồm một dãy các PE vì thế nó giống TILE cũng là bộ xử lý multiple thread trừ khi các PE ở đây được định nghĩa khác và mang cách hiểu khác của intel và mọi người trên thế giới.

                              Bộ xử lý X này là bộ xử lý chuyên biệt cho database application như gpu cho ứng dụng đồ họa vậy. Không như TILE là bộ xử lý công dụng chung. Vì thế X không xài cho database application thì nó trở thành vô dụng.

                              Việc nếu TILE là con voi thì X là con chuột đem so lại đúng là không công bằng với X nhưng xét tổng quan với mức độ bao trùm sẽ thấy X là phiên bản đơn giản rút gọn của TILE.

                              Lại có việc nữa rồi nếu rảnh ITX lại tiếp tục.
                              Last edited by itx; 04-08-2010, 20:11.
                              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


                              • #75
                                Hi các bác,

                                Lần trước mình có phần hơi nóng nên lời lẽ không được phù hợp. Mình xin lỗi các bác. Nhưng quả thật kiến trúc vi xử lý mình đề xuất và Tilera chẳng có nửa điểm chung từ mục đích sử dụng, kiến trúc, thiết kế. Để mình trình bày lại một chút cho các bác hiểu rõ.

                                Mình đã từng trình bày rõ PCI express connection link không ảnh hưởng đến hoạt động của database co-processor vi toàn bộ dữ liệu đã được nạp lên bộ nhớ dành riêng nằm sẵn trên PCI express card. Bộ nhớ này nối trực tiếp vào database co-processor. Main processor và database co-processor chỉ trao đổi lệnh, và kết quả trả về. Những thứ này có dung lượng nhỏ, nên không gặp trở ngại gì. Mình nghĩ rằng mình viết như vậy chắc hầu hết các bác đều hiểu.

                                Bác ITX nói Tilera gặp vấn đề về tắc nghẽn băng thông (bandwidth congestion) ở PCI express connection cũng là điều không đúng. Tilera là loại được đề xuất ra dùng làm network processor nên băng thông cực kì lớn (không lớn sao có thể làm switching trên mạng). Thực tế PCI express trên Tilera không phải dùng để truyền dữ liệu Mình đã xem lại kiến trúc này. Tilera có 2 PCI express controller, mỗi controller có 4 lane. Nếu sử dụng truyền dữ liệu tốc độ cao, PCI express phải có 16 lane. Thực tế PCI express trên Tilera chỉ dùng để kết nối với Main processor. Main processor sẽ gửi đến Tilera những lệnh điều khiển cũng như những dự liệu lập trình. Tilera gửi trả về trạng thái, hay các yêu cầu interruption. Tilera sử dụng thêm 1 PCI express controller nữa theo mình nghĩ là dùng để kết nối đến wireless card, do các wireless card thường sử dụng đường kết nối này. Dữ liệu của Tilera đến từ 2 cổng Gigabit Ethernet và 2 cổng 10 Gigabit Ethernet. Các cổng này nối trực tiếp vào mạng nên chẳng có vấn đề gì về tắc nghẽn dữ liệu hết. Ngoài các cổng này Tilera còn có memory controller nối đến bộ nhớ ngoài 2 cổng nối các Tilera với nhau và một cổng UART để nối với mấy thứ như ROM...

                                Nói về single thread và multiple thread mình nghĩ hầu hết các bác đều hiểu nhưng mình vẫn nói lại một chút để các bác thấy sự khác biệt. Vi xử lý của các bác hiện nay có nhiều lõi cho phép các bác chạy nhiều chương trình cùng lúc. Khi các bác chạy 1 chương trình thì chỉ một lõi hoạt động. Các này tương tự như Tilera. Tilera có hàng trăm vi xử lý cho phép các bác chạy hàng trăm chương trình 1 lúc. Nếu các bác chỉ chạy 1 chương trình thì chỉ 1 lõi của Tilera hoạt động. Lý do khiến Tilera không thể sử dụng cho database application vì database application chạy single thread nhưng tính toán trên rất nhiều dữ liệu và chạy rất nặng. Trong khi đó Tilera processor chỉ là loại MIPS 2-way superscalar, hiệu suất so với mấy loại các bác đang dùng còn thua xa nên làm sao chạy cho database application được. Loại single thread processor như mình đề xuất chỉ chạy 1 chương trình nhưng chạy hiệu suất rất cao. Khi cần chạy nhiều chương trình thì vi xử lý yêu cầu các chương trình phải chờ. Nhìn qua các bác cũng thấy ứng dụng của 2 loại này hoàn toàn khác nhau. 1 loại dùng để chạy nhiều công việc nhỏ, nhẹ. 1 loại dùng để chạy 1 it công việc nhưng rất nặng.

                                Hai kiến trúc này cũng dựa trên 2 ý tưởng thiết kế hoàn toàn khác nhau. Tilera dựa theo kiến trúc Multiprocessor (nhiều processor gắn chung trên 1 board). Loại này rõ rằng yêu cầu mỗi processor chạy 1 thread riêng biệt. Processor do mình đề xuất dựa trên kiến trúc FPGA. Trong FPGA mặc dù có hàng nghìn slide, nhưng tất cả chỉ chạy 1 chương trình (ví dụ Verilog) duy nhất.

                                Hai kiến trúc này từ ý tưởng ban đầu đã chẳng có điểm nào chung hết nên thiết kế đương nhiên chẳng có liên quan gì đến nhau. Vấn đề thiết kế quá chi tiết nên mình không muốn trình bày ra nhưng mình tin chắc các bác đều thấy mình chẳng hề sử dụng ý tưởng của Tilera một chút nào.

                                Cheers.

                                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