You are currently viewing Đánh giá hiệu năng CPU

Đánh giá hiệu năng CPU

Phần này đặt nền tảng để phân tích hiệu năng. Có nhiều cách để đo hiệu năng của một hệ thống máy tính. Các bộ phận tiếp thị của các công ty chế tạo máy tính thường chọn cách thể hiện làm cho máy tính của họ trông nhanh nhất, bất kể phép đo đó có mối tương quan nào với hiệu năng trong thế giới thực hay không. Ví dụ, các nhà sản xuất vi xử lý thường tiếp thị sản phẩm của họ dựa trên tần số xung nhịp và số lõi. Tuy nhiên, họ không đề cập đến tính phức tạp mà bộ xử lý hoàn thành nhiều công việc hơn những bộ xử lý khác trong một chu kỳ đồng hồ mà điều này lại thay đổi theo từng chương trình.

Cách duy nhất không chứa mánh lới quảng cáo để đo lường hiệu năng là đo thời gian thực hiện của một chương trình mà bạn quan tâm. Máy tính thực thi chương trình của bạn nhanh nhất thì có hiệu năng cao nhất. Lựa chọn tốt nhất tiếp theo là đo tổng thời gian thực hiện của một tập hợp các chương trình tương tự như những chương trình bạn định chạy. Điều này có thể cần thiết nếu bạn chưa viết chương trình của mình hoặc nếu ai đó khác không có chương trình của bạn nhưng muốn thực hiện các phép đo. Tập hợp các chương trình như vậy được gọi là benchmark và thời gian thực thi của các chương trình này thường được công bố để cung cấp một số chỉ số về cách bộ xử lý hoạt động.

Nếu chúng ta chỉ tập trung vào thời gian thực thi của các chương trình thực, thì chúng ta có thể nói rằng thời gian thực hiện càng ngắn thì hiệu năng càng cao. Do đó, chúng ta đơn giản định nghĩa hiệu năng là nghịch đảo của thời gian cần thiết để thực hiện chương trình. Để tính thời gian thực hiện của một chương trình, chúng ta có phương trình sau:

      Đánh giá hiệu năng CPU

trong đó, I là số lượng lệnh được thực thi của một chương trình; Ci biểu thị số chu kỳ cần thiết để thực hiện lệnh thứ I; và TPC (Time per Cycle) là thời gian tính theo giây của một chu kỳ xung nhịp, cũng là nghịch đảo của tần số xung nhịp (F), tức là chu kỳ xung nhịp.

Nếu mỗi lệnh yêu cầu cùng một số chu kỳ để thực thi, thì biểu thức trong (1.1) được đơn giản hóa thành:

      Đánh giá hiệu năng CPU

trong đó, CPI (Cycles per Instruction) là số Chu kỳ xung nhịp trung bình trên mỗi lệnh. CPI là nghịch đảo của thông lượng IPC (Instructions per Cycle – số lệnh được thực thi trên mỗi chu kỳ). Các vi kiến trúc khác nhau có CPI khác nhau.

Trong (1.2) chúng ta đã sử dụng thực tế rằng Ci = CPI “i. Từ biểu thức (1.2), chúng ta nhận thấy rằng có ba cách khả thi khác nhau để tăng tốc độ thực thi của bộ vi xử lý như được liệt kê dưới đây:

  1. Sử dụng ít lệnh hơn cho một chương trình nhất định. Nói cách khác, có thể cải thiện tốc độ thực thi bằng cách lập trình hiệu quả. Khía cạnh này sẽ được làm nổi bật trong các chương sau khi chúng ta thảo luận và phân tích phần mềm nhúng.
  2. Giảm số chu kỳ cho thực thi lệnh. Điều này chủ yếu phụ thuộc vào kiến trúc tập lệnh của bộ vi xử lý.
  3. Tăng tốc độ xung nhịp của bộ vi xử lý hoặc tương đương giảm thời gian chu kỳ. Điều này đề cập đến tần số xung nhịp tối đa của bộ xử lý. Tần số xung nhịp tối đa phụ thuộc vào nhiều khía cạnh khác nhau và một trong số đó được thảo luận dưới đây.

Số lượng lệnh cho thực hiện một chương trình phụ thuộc vào kiến trúc bộ xử lý. Một số kiến trúc có các lệnh phức tạp thực hiện nhiều công việc hơn cho mỗi lệnh, do đó làm giảm số lượng lệnh trong một chương trình. Tuy nhiên, những lệnh phức tạp này thường chậm hơn để thực thi trong phần cứng. Số lượng lệnh cũng phụ thuộc rất nhiều vào sự thông minh của người lập trình.

Chu kỳ xung nhịp được xác định bởi đường dẫn tới hạn thông qua mạch logic trên bộ xử lý. Các vi kiến trúc khác nhau có chu kỳ xung nhịp khác nhau. Thiết kế mạch logic cũng ảnh hưởng đáng kể đến chu kỳ xung nhịp. Ví dụ, một bộ cộng a carry-lookahead nhanh hơn một bộ cộng ripple-carry. Những tiến bộ trong sản xuất vi mạch đã tăng gấp đôi tốc độ bóng bán dẫn trong lịch sử cứ sau mỗi 4-6 năm. Do đó, một bộ vi xử lý được chế tạo ngày nay sẽ nhanh hơn một bộ vi xử lý của thập kỷ trước, ngay cả khi vi kiến trúc và mạch logic không thay đổi.

Ngoài ra, tần số xung nhịp F không thể tăng mãi mà không có giới hạn. Giới hạn vật lý của tần số xung nhịp của bộ xử lý dựa trên thực tế là các tín hiệu điện trong mạch di chuyển xấp xỉ với tốc độ ánh sáng. Chúng ta hãy xem xét một tình huống trong đó giả sử một bộ vi xử lý đang chạy ở tần số xung nhịp 3 GHz. Nói cách khác, một chu kỳ xung nhịp mất 1/3 ns (nano giây). Như vậy, các tín hiệu điện truyền đi một khoảng cách vật lý xấp xỉ 10 cm trong thời gian 1/3 ns. Giả sử rằng một mạch đang hoạt động đồng bộ, chúng ta cần đảm bảo rằng tín hiệu xung nhịp có sẵn ở các phần khác nhau của mạch (gần như) đồng thời. Điều này có thể được đảm bảo gần đúng bằng cách yêu cầu độ trễ lan truyền nhỏ hơn nhiều so với thời gian của một chu kỳ đồng hồ. Để đảm bảo điều này chúng ta sử dụng hệ số 10 tức là yêu cầu kích thước của mạch không quá 1 cm. Kích thước khuôn (die) của lõi CPU trong trường hợp Bộ xử lý Intel Core2 Duo [Intel (2014)] là khoảng 1 cm. Bây giờ nếu chúng ta muốn tăng gấp đôi tốc độ xung nhịp của bộ xử lý này, chúng ta cần giảm kích thước của lõi bộ xử lý thành một nửa. Nếu giới hạn kích thước này bị vi phạm thì sẽ xảy ra hiện tượng là một số phần của mạch bộ xử lý đang hoạt động theo chu kỳ xung nhịp hiện tại, trong khi một số phần khác của mạch vẫn chưa hoàn thành với chu kỳ xung nhịp trước đó. Loại hệ thống phân tán này rất khó xử lý trong các hệ thống thực tế.

Tiếp theo, chúng ta hãy thảo luận về một hạn chế kỹ thuật liên quan đến việc tăng tần số xung nhịp của bộ vi xử lý. Khi các lõi CPU ngày càng nhỏ hơn do kích thước quá trình chế tạo giảm, vấn đề tản nhiệt bắt đầu phát sinh. Như bạn có thể đã biết, bộ xử lý được tạo thành từ các bóng bán dẫn và các bóng bán dẫn này có thể được BẬT và TẮT ở tần số xung nhịp. Bây giờ chúng ta biết rằng mỗi bóng bán dẫn tiêu hao công suất khi chuyển từ trạng thái này sang trạng thái khác, chuyển đổi ở tốc độ nhanh dẫn đến tiêu hao điện năng nhiều hơn. Khi kích thước lõi của bộ xử lý được giảm xuống để tăng tốc độ xung nhịp, lượng nhiệt tương ứng được tạo ra bởi hàng triệu thậm chí hàng tỷ bóng bán dẫn chuyển mạch này sẽ không thể bị tiêu tán dễ dàng do kích thước chip giảm. Ban đầu, tản nhiệt và quạt được kết nối với bộ vi xử lý và đôi khi nitơ lỏng cũng được sử dụng trong một số máy chủ cao cấp cùng cho mục đích làm mát. Mức tăng tăng tốc độ xung nhịp và do đó là sự gia tăng tương ứng trong chi phí của cơ chế làm mát liên quan là một số rào cản thực tế trong việc tăng tốc độ bộ xử lý hơn nữa. Một giải pháp tự nhiên cho hạn chế này là sử dụng nhiều bộ xử lý có tốc độ vừa phải thay vì sử dụng một bộ xử lý tốc độ quá cao, dẫn đến kiến ​​trúc bộ xử lý đa lõi.

Thách thức trong thiết kế vi kiến trúc của bộ vi xử lý là chọn thiết kế giảm thiểu thời gian thực thi trong khi vẫn đáp ứng các hạn chế về chi phí và/hoặc điện năng tiêu thụ. Bởi vì các quyết định về thiết kế vi kiến trúc ảnh hưởng đến cả CPI và TPC và bị ảnh hưởng bởi thiết kế mạch logic, nên việc xác định lựa chọn tốt nhất đòi hỏi phải được phân tích cẩn thận.

Nhiều nhà nghiên cứu trên khắp thế giới đang cố gắng cải thiện hiệu năng máy tính bằng cách giảm giá trị của từng số hạng trong biểu thức (1.2). Các nhà thiết kế kiến trúc và nhà phát triển trình biên dịch đang cố gắng giảm số lượng các lệnh bắt buộc (I) của một chương trình. Các nhà thiết kế kiến trúc tập lệnh và CPU đang cố gắng giảm CPI. Các nhà thiết kế CPU và kỹ thuật chế tạo vi mạch đang cố gắng tăng tần số xung nhịp (F).

Lưu ý rằng ba tham số này không độc lập. Ví dụ, các CPU CISC có thể giảm số lượng lệnh I bằng cách cung cấp các lệnh phức tạp, nhưng nó có thể làm tăng CPI. Các CPU RISC có thể làm giảm CPI và TPC, nhưng nó có thể làm tăng I. Ngoài ra, còn nhiều yếu tố khác ảnh hưởng đến hiệu năng tổng thể của máy tính. Ví dụ, đĩa cứng, bộ nhớ, hệ thống đồ họa và kết nối mạng có thể là những yếu tố hạn chế làm cho hiệu năng của bộ xử lý. Bộ vi xử lý nhanh nhất thế giới không giúp gì cho việc lướt Internet trên kết nối quay số.

Nguyễn Kiêm Hùng

Hung K. Nguyen studied “Electronic Engineering” in both his bachelor’s and master’s degrees at the Vietnam National University, Hanoi, Vietnam. He received the bachelor’s degree in 2003. After receiving his bachelor’s degree, He worked as an internship in the Research Center of Electronics and Telecommunications. In 2006, He received the master’s degree in electronic engineering from VNU University of Engineering and Technology (VNU-UET). Before pursuing his Ph.D’s degree, He worked as a researcher at the Laboratory for Smart Integrated Systems in VNU University of Engineering and Technology for two years. In 2008, He went to Southeast University, Nanjing, China to get his Ph.D degree. He received the Ph.D. degree in Microelectronics and Solid State Electronics from Southeast University in 2013. After got his Ph.D’s degree, He returned to VNU University of Engineering and Technology to continue his research in VLSI design. He works currently as an assistant professor and senior researcher at VNU Key Laboratory for Smart Integrated Systems. His research interests mainly include multimedia processing, reconfigurable computing, and SoC designs.

Trả lời