1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính

20 1,1K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 1,02 MB

Nội dung

Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính

Trang 1

Mục lục

DANH MỤC HÌNH VẼ 2

LỜI NÓI ĐẦU 3

1 Multicore là gì? 4

2 Tại sao cần Multicore? 5

2.1 Phương pháp tăng tốc độ đồng hồ 5

2.2 Đường ống hóa bộ vi xử lý 7

2.3 Phương pháp siêu phân luồng 8

3 Các kỹ thuật trong Multicore 10

3.1 Multicore kết hợp với Hyper Threading 10

3.2 Các vấn đề kết hợp Multicore với bộ nhớ Cache 12

4 Hệ điều hành và chương trình trong Multicore 17

5 Kết Luận 20

Trang 2

DANH MỤC HÌNH VẼ

Hình 1 Sơ đồ khối của máy tính 4

Hình 2 Cấu tạo của một Core 4

Hình 3 Sơ đồ khối hệ thống Multicore 5

Hình 4 Biều đồ thời gian kích thước của Transistor từ 2000-2020 6

Hình 5 Tỷ lệ hiệu năng so với tốc độ đồng hồ của vi xử lý hãng Intel 6

Hình 6 Minh họa quá trình thực hiện Pipeline 7

Hình 7 Sự lãng phí ALU 8

Hình 8 Minh họa siêu phân luồng 9

Hình 9 Tranh chấp giữa hai luồng trong STT 10

Hình 10 Multicore kết hợp với Hyper Threading 11

Hình 11 Chip i5-4200U 2 nhân, 4 luồng 11

Hình 12 So sánh tốc độ và giá c ả các lo ại bộ nhớ 12

Hình 13 Các kiểu kết hợp bộ nhớ trong Multicore 13

Hình 14 Xung đột dữ liệu trong Multicore 13

Hình 15 Xung đột dữ liệu trong Multicore 14

Hình 16 Xung đột dữ liệu trong Multicore 14

Hình 17 Xung đột dữ liệu trong Multicore 15

Hình 18 Phương pháp vô hiêu hóa dữ liệu 15

Hình 19 Phương pháp vô hiêu hóa dữ liệu 16

Hình 20 Phương pháp vô hiêu hóa dữ liệu 16

Hình 21 Phương pháp cập nhật dữ liệu 17

Hình 22 Ví dụ về Affinity masks không có Hyper Threading 18

Hình 23 Ví dụ về Affinity masks có Hyper Threading 18

Hình 24 Set affinity trong Window 19

Trang 3

LỜI NÓI ĐẦU

Ngày này, với tốc độ phát triển nhanh chóng của xã hội, nhu cầu xử lý thông tin của người dùng là ngày càng tăng, đòi hỏi những chiếc máy tính phải trang bị cho mình các bộ xử lý mạnh mẽ và đồng thời phải có giá thành hợp lý Chính vì vậy, ngày càng có nhiều giải pháp nâng cao hiệu năng của máy tính được đưa ra Một trong các phương pháp đã và đang được áp dụng vào thực tế thành công là phương pháp nâng cao hiệu năng của máy tính theo công nghệ Multicore Đây là một công nghệ rất mới và thú vị Vì vậy, nhóm chúng em quyết định chọn đề tài “Tìm hiểu về công nghệ Multicore và các phương pháp cải thiện hiệu năng của máy tính” để cập nhật thêm những kiến thức mới cho bản thân

Trong bài tập lớn này, nhóm chúng em tìm hiểu xoay quay các vấn đề chính như: công nghệ Multicore là gì, ưu nhược điểm của công nghệ Multicore, so sánh công nghệ Multicore với các công nghệ cải thiện hiệu năng khác Trong bài viết, nhóm chúng em xin trình bày ngắn gọn, tập trung vào các ý chính của từng vấn đề

Do thơi gian tìm hiểu còn hiểu hạn chế nên trong bài viết không tránh khỏi những thiếu sót Vì vậy, chúng em rất mong nhận được những ý kiến góp ý từ cô để hoàn thiện hơn kiến thức về vấn đề này

Cuối cùng, nhóm chúng em xin chân thành cảm ơn cô giáo Ths Tạ Kim Huệ đã cho chúng em một đề tài thú vị

Nhóm sinh viên

S-BkFet

Trang 4

1 Multicore là gì?

Như chúng ta đã biết, một chiếc máy tính đơn giản là một hệ thống bao gồm

4 thành phần: đơn vị xử lý trung tâm (CPU), bộ nhớ, thành phần giao tiếp với các thiết bị ngoại vị và một hệ thống bus Trong đó, CPU là thành phần quan trọng nhất của một chiếc máy tính Cấu tạo cơ bản của CPU bao gồm 3 thành phần:

 ALU: đơn vị tính toán số học và logic

 Register file: tệp thanh ghi

 Bus Interface: đơn vị điều khiển hệ thống bus

Hình 1 Sơ đồ khối của máy tính

Hình 1 thể hiện sơ đồ khối của một chiếc máy tính Trên đó, trong phần ô vuông màu đỏ chính là các thành phần của một chiếc CPU đơn giản, chiếc CPU này chỉ có một core Vậy Core là gì?

Hình 2, giải thích khái niệm core của CPU Core ở đây có thể hiểu là một lõi với hai thành phần là ALU và tệp thanh ghi kết nối với nhau Một điều lưu ý, một core không được coi là một chiếc CPU đầy đủ, nó chỉ là một thành phần trong CPU

Từ đây, ta có thể hiểu công nghệ Multicore là công nghệ thay vì chỉ sử dụng một core cho một chiếc CPU, ta sẽ tích hợp nhiều core lên trên cùng một

Trang 5

khuân CPU và các core này cùng sử dụng chung các thành phần của máy tính Để hiểu rõ ta hãy theo dõi Hình 3, trên hình vẽ minh họa sơ đồ khối của một chiếc CPU

sử dụng theo công nghệ Multrcore

Hình 3 Sơ đồ khối hệ thống Multicore

Đến đây, ta có thể hình dung ra cách nâng cao hiệu năng của máy tính sử dụng công nghệ này Trong công nghệ này, người ta tăng số lượng các đơn vị tính toán của CPU Có nghĩa là thay vì trong một thời điểm chỉ thực hiện được một tác

vụ, ta có thực hiện tối đa N tác vụ đồng thời, với N là số core của CPU Tuy nhiên, phương pháp này cũng có các ưu và nhược điểm của nó Nhưng trước hết, ta hãy tìm hiểu vì sao người ta lại sử dụng công nghệ Multicore bằng cách phân tích các mặt hạn chế và giới hạn của các công nghệ được áp dụng trước đó như: tăng tốc độ đồng hồ, đường ống hóa bộ vi xử lý (Pipeline), công nghệ siêu phân luồng (Hyper Threading hay Simultaneous multithreading)

2 Tại sao cần Multicore?

2.1 Phương pháp tăng tốc độ đồng hồ

Như chúng ta đã biệt, tốc độ đồng hồ là một trong những nguyên nhân quyết định đến hiệu suất của máy tính Cùng một chiếc máy tính, khi mà tốc độ đồng hồ tăng thì thời gian thực hiện một lệnh sẽ giảm xuống, nghĩa là trong cùng một khoảng thời gian ta thực hiện được nhiều lệnh hơn hay hiêu năng của máy tính sẽ tăng lên Tuy nhiên tốc độ của đồng hồ phụ thuộc vào kích thước của các transistor,

để tăng tốc độ đồng hồ đỏi hỏi kích thước của các transistor phải ngày càng nhỏ Đồng nghĩa với việc chế tạo ra một chiếc CPU hiệu năng cao ngày càng khó khi mà công nghệ chế tạo Transistor đang dừng lại ở công nghệ 22nm và rất khó khăn để

có thể chế tạo ra một chiếc Transistor nhỏ hơn nữa

Trang 6

Hình 4 Biều đồ thời gian kích thước của Transistor từ 2000-2020

Hình 5 Tỷ lệ hiệu năng so với tốc độ đồng hồ vi xử lý của hãng Intel

Một nguyên nhân khác khiến việc tăng tốc độ đồng hồ nhanh đạt đến giới hạn của nó là khi ta tăng tốc độ đồng hồ, điện năng tiêu thụ của một chiếc CPU cũng tăng lên một cách nhanh chóng theo hàm bình phương của tốc độ đồng hồ

Trang 7

Điều này, khiến chiếc máy tính trở nên nóng hơn và cần phải có các hệ thống tản nhiệt đắt tiền Qua thực tế, người ta nhận thấy rằng tỉ lệ hiệu năng so với giá thành sản phẩm theo cách tăng xung nhịp nhanh đạt đến một ngưỡng tới hạn

Vì các lý do trên, chúng ta cần phải có các phương pháp khác tốt hơn để giải quyết tăng hiệu năng của máy tính

2.2 Đường ống hóa bộ vi xử lý

Một trong các phương pháp rất hay và vẫn còn được sử dụng trong các chiếc CPU ngày này là phương pháp đường ống hóa bộ vi xử lý (Pipeline) Cơ chế ngắn gọn của pháp pháp này là chia quá trình thực hiện lệnh thành các giai đoạn nhỏ hơn

và mỗi giai đoạn có một đơn vị thực hiện riêng Điều đó có nghĩa là ta có thể thực hiện đồng thời các giai đoạn khác nhau của các lệnh khác nhau trong cùng một thời điểm Điều này, cho phép ta tận dùng các tài nguyên sẵn có trên chiếc vi xử lý và có thể giúp tăng tốc độ đồng hồ mà không cần phải giảm kích thước Transistor

Tuy nhiên, phương pháp này cũng có mặt hạn chế Đó là để khai thác được hết năng lưc của các tài nguyên ta cần phải chia quá trình thực hiện lệnh thành càng nhiều giai đoạn càng tốt Nhưng khi chia quá trình thực hiện lệnh thành càng nhiều giai đoạn, xung đột giữa các quá trình bắt đầu xuất hiện và số lượng xung đột cũng tăng theo số giai đoạn Việc này đòi hỏi phải có các phương pháp giải quyết và rất khó để giải quyết vấn đề khi số giai đoạn tăng quá cao

Hình 6 Minh họa quá trình thực hiện Pipeline

Nhìn chung, phương pháp này là rất tốt để giải quyết bài toán khai thác hiệu quả tài nguyên sẵn có Nhưng nếu xét kỹ hơn, ta sẽ thấy phương pháp này chưa khai thác được hết tài nguyên trên bộ ALU Lấy một ví dụ, bộ ALU của chúng ta có hai đơn vị tính toán riêng biệt cho số phức và số thực dấu phẩy động như trên hình 6

Dù cho đã sử dụng phương pháp Pipeline thì tại một thời điểm ta cũng chỉ có thể sử

Trang 8

dụng một trong hai đơn vị này, nghĩa là đơn vị còn lại không được sử dụng Điều này dẫn tới sự ra đời của một phương pháp mới, phương pháp siêu phân luồng

Hình 7 Sự lãng phí ALU

2.3 Phương pháp siêu phân luồng

Siêu phân luồng hay đa luồng chạy đồng thời là cùng các tên để chỉ cùng một phương pháp, trong bài viết này sẽ sử dụng cách gọi thứ nhất Nói một cách đơn giản để hiểu siêu phân luồng là nếu máy tính có một chiếc CPU thì hệ điều hành và phần mềm sẽ tưởng tượng nó đang sở hữu hai chiếc CPU ảo và chúng có thể tạo ra hai luồng khác nhau để chạy đồng thời trên hai chiếc CPU ảo này với yêu cầu tại một thời điểm hai luồng này sử dụng hai đơn vị khác nhau của chiếc CPU vật lý Để hiểu rõ hơn phương pháp này hãy theo dõi hình 8

Trang 9

Hình 8 Minh họa siêu phân luồng

Trên hình 8, ta thấy có hai luồng 1 và luồng 2 chạy song song với nhau và chúng sử dụng hai đơn vị tài nguyên khác nhau của ALU Trong khi luồng 1 sử dụng đơn vị tính toán cho số nguyên thì luồng 2 sử dụng đơn vị tính toán số thực dấu phảy động Rõ ràng, nhìn vào đây ta có thể thấy phương pháp này cho phép khai thác tốt hơn tài nguyên trên ALU

Tuy nhiên, một nhược điểm của phương pháp này là nếu có sự tranh chấp sử dụng cùng một tài nguyên giữa hai luồng thì cần phải giải quyết như thế nào Điều này nếu không được giải quyết có thể dẫn tới các hậu quả nghiêm trọng và không thể giải quyết được

Phương pháp này, tuy có mặt hạn chế rất lớn Nhưng nó vẫn rất tốt cho các phần mềm và hệ điều hành hỗ trợ siêu phân luồng, hệ thống máy chủ Ngày này, hầu hết các hệ điều hành phổ biến như Window, MacOS, Linux,… đã hỗ trợ siêu phân luồng Nhưng một điều khiến phương pháp này vẫn chưa thật sự hấp dẫn đó là việc viết các chương trình hỗ trợ siêu phân luồng thường khó hơn cho các lập trình viên

Một phương pháp gần giống và hiệu quả hơn, đó chính là phương pháp Multicore Phương pháp Multicore ngoài việc giải quyết vấn đề tranh chấp tốt hơn

nó còn là giải pháp tốt để giải quyết bài toán đa nhiệm Tức là, bây giờ với Multicore chúng ta có thể thực hiện nhiều tác vụ đồng thời, lấy một ví dụ đơn giản khi bạn sử dụng trình duyệt web để đọc báo, bạn vẫn có thể bật window player để

Trang 10

nghe nhạc, bật từ điển để tìm nghĩa của một từ mới,… Nói tóm lại, với Multicore ta

có thể thoải mái sử dụng nhiều ứng dụng cùng một lúc

Hình 9 Tranh chấp giữa hai luồng trong STT

Trong phần sau, chúng ta sẽ xem xét cách kết hợp Multicore với siêu phân luồng, so sánh hai công nghệ này với nhau, ngoài ra chúng ta cũng sẽ phân tích và giải quyết vấn đề đồng bộ dữ liệu

3 Các kỹ thuật trong Multicore

3.1 Multicore kết hợp với Hyper Threading

Ngày nay, người ta thường kết hợp nhiều phương pháp với nhau để khai thác tối đa hiệu năng của máy tính Trong đó có sự kết hợp giữa Multicore và Hyper Threading Các chip vi xử lý của Intel trên thị trường hiện cung cấp cho người dùng các tùy chọn sau:

 Single-core, non-SMT

 Single-core, with SMT

 Multi-core, non-SMT

 Multi-core, with SMT

Trang 11

Với một chiếc CPU hai core và sử dụng Hyper Threading thì máy tính có thể

có tối đa 4 luồng chạy đồng thời Trên hệ điều hành window để thấy điều này ta có thể vào Task Manager để kiểm tra

Hình 10 Multicore kế t hợp với Hyper Threading

Hình 11 CPU i5-4200U 2 nhân, 4 luồng

Trang 12

Cách kết hợp này cho phép các chiếc CPU có thể chạy với tốc độ đồng hồ thấp hơn nhưng vẫn đạt được hiệu năng cao và giúp giảm điện năng tiêu thụ của máy tính

So sánh Multicore và Hyper Threading:

 Có nhiều lõi và mỗi lõi thường nhỏ và

chậm hơn, bù lại việc thiết kế và sản

xuất đơn giản hơn

 Điều này thích hợp với sử lý song

song ở mức luồng

 Có thể sử dụng với lõi có kích thước lớn và nhanh hơn

 Hiệu năng tốt với luồng đơn

 Hầu hết vẫn áp dụng song song ở mức lệnh

3.2 Các vấn đề kết hợp Multicore với bộ nhớ Cache

Trong kiến trúc máy tính, thành phần có tốc độ chậm nhất chính là bộ nhớ, đây thường là nguyên nhân chính làm hiệu năng của máy tính giảm Thực ra, tốc độ của bộ nhớ SRAM không phải là quá chậm tuy nhiên giá thành để sản xuất các bộ nhớ nhanh là rất tốn kém vì thế người ta sử dụng phương pháp phân cấp bộ nhớ để giải quyết một phần vấn đề

Hình 12 So sánh tốc độ và giá cả các loại bộ nhớ

Cơ sở của phương pháp này là các bộ nhớ gần máy tính có tốc cao và dung lượng nhỏ, các bộ nhớ ở xa hơn có tốc độ chậm hơn và dung lượng lớn hơn Trong

đó Cache là thành phần gần với CPU nhất và thường nằm trong CPU Các dữ liệu

sẽ được tải vào trong cache trước khi được đưa vào CPU để tính toán

Trang 13

Hình 13 Các kiểu kết hợp bộ nhớ trong Multicore

Trong Multicore, các core có thể có các bộ nhớ Cache riêng hay chia sẻ bộ nhớ Cache với nhau Hình 13, minh họa các cách kết hợp bộ nhớ Cache trong Multicore

Khi kết hợp với bộ nhớ cache, trong hệ thống nảy sinh ra vấn đề cần phải đồng bộ dữ liệu nếu có nhiều luồng cùng tác động đến một biến Để hiểu rõ vấn đề này chúng ta hãy theo dõi một ví dụ

Ta có một chiếc máy tính 4 core và sử dụng kiến trúc phân cấp bộ nhớ, trong

bộ nhớ chính đang lưu một biến x = 15213

Hình 14 Xung đột dữ liệu trong Multicore

Trang 14

Core 1 và Core 2 cùng sử dụng x và chúng đọc x vào bộ nhớ cache riêng của chúng

Hình 15 Xung đột dữ liệu trong Multicore

Core 1 đọc x từ Cache và tính toán, lưu tra lại kết quả x = 21660 vào bộ nhớ Cache của nó và bộ nhớ chính

Hình 16 Xung đột dữ liệu trong Multicore

Một lúc sau, Core 2 muốn sử dụng đến x, nó đọc x từ Cache của nó nhưng chỉ đọc được kết quả cũ x = 15213 Đến đây, rõ ràng cần phải có giải pháp để đồng

bộ hóa dữ liệu

Ngày đăng: 07/05/2016, 22:30

HÌNH ẢNH LIÊN QUAN

Hình 1. Sơ đồ khối của máy tính - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 1. Sơ đồ khối của máy tính (Trang 4)
Hình  1  thể  hiện  sơ  đồ  khối  của  một  chiếc  máy  tính.  Trên  đó,  trong  phần  ô  vuông màu đỏ chính là các thành phần của một chiếc CPU đơn giản, chiếc CPU này  chỉ có một core - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
nh 1 thể hiện sơ đồ khối của một chiếc máy tính. Trên đó, trong phần ô vuông màu đỏ chính là các thành phần của một chiếc CPU đơn giản, chiếc CPU này chỉ có một core (Trang 4)
Hình 3. Sơ đồ khối hệ  thống Multicore - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 3. Sơ đồ khối hệ thống Multicore (Trang 5)
Hình 4. Biều đồ thời gian kích thước của Transistor từ 2000-2020 - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 4. Biều đồ thời gian kích thước của Transistor từ 2000-2020 (Trang 6)
Hình 5. Tỷ lệ hiệu năng so với tốc độ đồng hồ vi xử lý của hãng Intel - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 5. Tỷ lệ hiệu năng so với tốc độ đồng hồ vi xử lý của hãng Intel (Trang 6)
Hình 6. Minh họa quá trình thực hiện Pipeline - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 6. Minh họa quá trình thực hiện Pipeline (Trang 7)
Hình 7. Sự lãng phí ALU - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 7. Sự lãng phí ALU (Trang 8)
Hình 8. Minh họa siêu phân luồng - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 8. Minh họa siêu phân luồng (Trang 9)
Hình 9. Tranh chấp giữa hai luồng trong STT - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 9. Tranh chấp giữa hai luồng trong STT (Trang 10)
Hình 10. Multicore kế t hợp với Hyper Threading - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 10. Multicore kế t hợp với Hyper Threading (Trang 11)
Hình 11. CPU i5-4200U 2 nhân, 4 luồng - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 11. CPU i5-4200U 2 nhân, 4 luồng (Trang 11)
Hình 12. So sánh tốc độ và giá cả các loại bộ nhớ - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 12. So sánh tốc độ và giá cả các loại bộ nhớ (Trang 12)
Hình 13. Các kiểu kết hợp bộ nhớ trong Multicore - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 13. Các kiểu kết hợp bộ nhớ trong Multicore (Trang 13)
Hình 14. Xung đột dữ liệu trong Multicore - Tìm hiểu về công nghệ multicore và các phương pháp cải thiện hiệu năng của máy tính
Hình 14. Xung đột dữ liệu trong Multicore (Trang 13)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w