Hi các bác,
Hôm nay mình mở một topic giới thiệu về một kiểu Microprocessor do mình đề xướng. Mình đã đăng ký thành công patent cho kiểu này ở Đức và ở Mỹ. Lúc trước mình có đi xin tiền bọn VC (Venture Capital) để start-up mà chưa được bây giờ bận quá nên tạm ngừng. Mình sẽ gửi bài lên từ từ để các bác tham khảo và cho ý kiến. Mình đã lâu không ở VN nên nhiều từ chuyên ngành mình sẽ viết bằng tiếng Anh để tránh viết sai mong các bác thông cảm.
I. Động cơ phát triển
Hiện giờ các hãng sản xuất vi xử lý thường thiết kế theo hướng multi-core. Kiến trúc này mặc dù được nhiều người tung hô, nhưng mình cho rằng đây là một kiến trúc rất dở. Thứ nhất compiler và người lập trình không thể nào tận dụng được kiến trúc này để chạy một chương trình trên nhiều lõi trừ một số trường hợp đặc biệt như xử lý tín hiệu (video...). Nếu người dùng chỉ chạy một hoặc hai chương trình thì multicore processor có ý nghĩa gì. Bên cạnh đó do các lõi chạy các chương trình độc lập nhau nên băng thông bộ nhớ và IO bị chia sẻ cho tất cả các lõi. Hiện nay và cả tương lai IO bandwidth rất bị hạn chế. Người ta chỉ có thể giảm nhỏ kích thước transistor nhưng không thể giảm nhỏ kích thước IO pad (cỡ 50um*50um) vì đây là kết nối cơ khí ra bên ngoài. Việc tăng tốc độ IO hiện giờ vẫn khả thi nhưng không thể tăng mãi được. Khi IO chạy tấn số cao, suy hao rất lớn. Ngoài ra phải kể đến reflection, cross-talk, ISI... Nếu như băng thông ra bộ nhớ bị tắc nghẽn thì các core chỉ có cách chờ dữ liệu. Theo queuing theory, latency khi tắc nghẽn sẽ tăng theo hàm số mũ. Điều này nghĩa là ngay cả khi processor có hàng trăm lõi, các lõi đều phải chờ dữ liệu và chạy chẳng khác gì một lõi. Điểm cuối cùng đáng để lưu ý là trong trường hợp tất cả các lõi chạy cùng một chương trình thì xử lý data coherency sẽ như thế nào. Vi xử lý hiện nay chỉ có thể xử lý các dữ liệu độc lập nhau ví dụ tín hiệu video. Trong thực tế hầu hết các ứng dụng đều có dữ liệu liên quan đến nhau.
Hôm nay mình mở một topic giới thiệu về một kiểu Microprocessor do mình đề xướng. Mình đã đăng ký thành công patent cho kiểu này ở Đức và ở Mỹ. Lúc trước mình có đi xin tiền bọn VC (Venture Capital) để start-up mà chưa được bây giờ bận quá nên tạm ngừng. Mình sẽ gửi bài lên từ từ để các bác tham khảo và cho ý kiến. Mình đã lâu không ở VN nên nhiều từ chuyên ngành mình sẽ viết bằng tiếng Anh để tránh viết sai mong các bác thông cảm.
I. Động cơ phát triển
Hiện giờ các hãng sản xuất vi xử lý thường thiết kế theo hướng multi-core. Kiến trúc này mặc dù được nhiều người tung hô, nhưng mình cho rằng đây là một kiến trúc rất dở. Thứ nhất compiler và người lập trình không thể nào tận dụng được kiến trúc này để chạy một chương trình trên nhiều lõi trừ một số trường hợp đặc biệt như xử lý tín hiệu (video...). Nếu người dùng chỉ chạy một hoặc hai chương trình thì multicore processor có ý nghĩa gì. Bên cạnh đó do các lõi chạy các chương trình độc lập nhau nên băng thông bộ nhớ và IO bị chia sẻ cho tất cả các lõi. Hiện nay và cả tương lai IO bandwidth rất bị hạn chế. Người ta chỉ có thể giảm nhỏ kích thước transistor nhưng không thể giảm nhỏ kích thước IO pad (cỡ 50um*50um) vì đây là kết nối cơ khí ra bên ngoài. Việc tăng tốc độ IO hiện giờ vẫn khả thi nhưng không thể tăng mãi được. Khi IO chạy tấn số cao, suy hao rất lớn. Ngoài ra phải kể đến reflection, cross-talk, ISI... Nếu như băng thông ra bộ nhớ bị tắc nghẽn thì các core chỉ có cách chờ dữ liệu. Theo queuing theory, latency khi tắc nghẽn sẽ tăng theo hàm số mũ. Điều này nghĩa là ngay cả khi processor có hàng trăm lõi, các lõi đều phải chờ dữ liệu và chạy chẳng khác gì một lõi. Điểm cuối cùng đáng để lưu ý là trong trường hợp tất cả các lõi chạy cùng một chương trình thì xử lý data coherency sẽ như thế nào. Vi xử lý hiện nay chỉ có thể xử lý các dữ liệu độc lập nhau ví dụ tín hiệu video. Trong thực tế hầu hết các ứng dụng đều có dữ liệu liên quan đến nhau.
Comment