Kiến trúc hệ thống và bộ nhớ
Có nhiều kiểu kiến trúc hệ thống và bộ nhớ khác nhau cần được xem xét khi thiết kế chương trình hoặc hệ thống đồng thời. Nó rất cần thiết vì một hệ thống và kiểu bộ nhớ có thể phù hợp với một tác vụ nhưng có thể dễ xảy ra lỗi với tác vụ khác.
Kiến trúc hệ thống máy tính hỗ trợ đồng thời
Michael Flynn năm 1972 đã đưa ra phân loại học để phân loại các kiểu kiến trúc hệ thống máy tính khác nhau. Phân loại này xác định bốn kiểu khác nhau như sau:
- Luồng lệnh đơn, luồng dữ liệu đơn (SISD)
- Luồng lệnh đơn, nhiều luồng dữ liệu (SIMD)
- Nhiều luồng lệnh, một luồng dữ liệu (MISD)
- Nhiều luồng lệnh, nhiều luồng dữ liệu (MIMD).
Luồng lệnh đơn, luồng dữ liệu đơn (SISD)
Như tên cho thấy, loại hệ thống như vậy sẽ có một luồng dữ liệu đến tuần tự và một đơn vị xử lý duy nhất để thực thi luồng dữ liệu. Chúng giống như các hệ thống đơn xử lý có kiến trúc tính toán song song. Sau đây là kiến trúc của SISD -
Ưu điểm của SISD
Những ưu điểm của kiến trúc SISD như sau:
- Nó đòi hỏi ít điện năng hơn.
- Không có vấn đề về giao thức giao tiếp phức tạp giữa nhiều lõi.
Nhược điểm của SISD
Những nhược điểm của kiến trúc SISD như sau:
- Tốc độ của kiến trúc SISD bị giới hạn giống như các bộ xử lý lõi đơn.
- Nó không thích hợp cho các ứng dụng lớn hơn.
Luồng lệnh đơn, nhiều luồng dữ liệu (SIMD)
Như tên cho thấy, loại hệ thống như vậy sẽ có nhiều luồng dữ liệu đến và số lượng đơn vị xử lý có thể hoạt động trên một lệnh duy nhất tại bất kỳ thời điểm nào. Chúng giống như các hệ thống đa xử lý có kiến trúc tính toán song song. Sau đây là kiến trúc của SIMD -
Ví dụ tốt nhất cho SIMD là các card đồ họa. Các thẻ này có hàng trăm đơn vị xử lý riêng lẻ. Nếu chúng ta nói về sự khác biệt tính toán giữa SISD và SIMD thì đối với mảng thêm[5, 15, 20] và [15, 25, 10],Kiến trúc SISD sẽ phải thực hiện ba thao tác thêm khác nhau. Mặt khác, với kiến trúc SIMD, chúng ta có thể thêm thì chỉ trong một thao tác thêm.
Ưu điểm của SIMD
Ưu điểm của kiến trúc SIMD như sau:
Chỉ có thể thực hiện cùng một thao tác trên nhiều phần tử bằng một lệnh.
Thông lượng của hệ thống có thể được tăng lên bằng cách tăng số lõi của bộ xử lý.
Tốc độ xử lý cao hơn kiến trúc SISD.
Nhược điểm của SIMD
Những nhược điểm của kiến trúc SIMD như sau:
- Có sự giao tiếp phức tạp giữa số lượng lõi của bộ xử lý.
- Chi phí cao hơn kiến trúc SISD.
Luồng dữ liệu đơn nhiều lệnh (MISD)
Các hệ thống với luồng MISD có số lượng đơn vị xử lý thực hiện các hoạt động khác nhau bằng cách thực hiện các lệnh khác nhau trên cùng một tập dữ liệu. Sau đây là kiến trúc của MISD -
Các đại diện của kiến trúc MISD chưa tồn tại về mặt thương mại.
Luồng nhiều hướng dẫn nhiều dữ liệu (MIMD)
Trong hệ thống sử dụng kiến trúc MIMD, mỗi bộ xử lý trong hệ thống đa xử lý có thể thực hiện song song các bộ lệnh khác nhau trên bộ dữ liệu khác nhau. Nó đối lập với kiến trúc SIMD trong đó hoạt động đơn lẻ được thực hiện trên nhiều tập dữ liệu. Sau đây là kiến trúc của MIMD -
Một bộ đa xử lý thông thường sử dụng kiến trúc MIMD. Các kiến trúc này về cơ bản được sử dụng trong một số lĩnh vực ứng dụng như thiết kế có sự hỗ trợ của máy tính / sản xuất có sự hỗ trợ của máy tính, mô phỏng, mô hình hóa, chuyển mạch truyền thông, v.v.
Kiến trúc bộ nhớ hỗ trợ đồng thời
Trong khi làm việc với các khái niệm như đồng thời và song song, luôn cần phải tăng tốc các chương trình. Một giải pháp được các nhà thiết kế máy tính tìm ra là tạo ra nhiều máy tính dùng chung bộ nhớ, tức là các máy tính có không gian địa chỉ vật lý duy nhất, được truy cập bởi tất cả các lõi mà bộ xử lý đang có. Trong trường hợp này, có thể có một số phong cách kiến trúc khác nhau nhưng sau đây là ba phong cách kiến trúc quan trọng:
UMA (Truy cập bộ nhớ đồng nhất)
Trong mô hình này, tất cả các bộ xử lý chia sẻ bộ nhớ vật lý một cách đồng nhất. Tất cả các bộ xử lý có thời gian truy cập bằng nhau đến tất cả các từ bộ nhớ. Mỗi bộ xử lý có thể có một bộ nhớ đệm riêng. Các thiết bị ngoại vi tuân theo một bộ quy tắc.
Khi tất cả các bộ xử lý có quyền truy cập như nhau vào tất cả các thiết bị ngoại vi, hệ thống được gọi là symmetric multiprocessor. Khi chỉ một hoặc một vài bộ xử lý có thể truy cập vào các thiết bị ngoại vi, hệ thống được gọi làasymmetric multiprocessor.
Quyền truy cập bộ nhớ không đồng nhất (NUMA)
Trong mô hình đa xử lý NUMA, thời gian truy cập thay đổi theo vị trí của từ bộ nhớ. Tại đây, bộ nhớ dùng chung được phân phối vật lý giữa tất cả các bộ xử lý, được gọi là bộ nhớ cục bộ. Tập hợp tất cả các bộ nhớ cục bộ tạo thành một không gian địa chỉ chung mà tất cả các bộ xử lý có thể truy cập.
Kiến trúc bộ nhớ chỉ bộ nhớ đệm (COMA)
Mô hình COMA là một phiên bản chuyên biệt của mô hình NUMA. Tại đây, tất cả các bộ nhớ chính được phân phối được chuyển đổi thành bộ nhớ đệm.