CPU, còn được gọi là bộ vi xử lý là trái tim và / hoặc bộ não của máy tính. Hãy đi sâu vào lõi của máy tính để giúp chúng tôi viết các chương trình máy tính một cách hiệu quả.
"Một công cụ thường đơn giản hơn một cái máy; nó thường được sử dụng bằng tay, trong khi máy móc thường được di chuyển bằng động vật hoặc sức mạnh hơi nước."
- Charles Babbage
A máy tính là một máy được cung cấp chủ yếu bằng điện nhưng tính linh hoạt và khả năng lập trình của nó đã giúp đạt được sự đơn giản của một công cụ.
CPU là trái tim và / hoặc bộ não của máy tính. Nó thực hiện các hướng dẫn được cung cấp cho nó. Công việc chính của nó là thực hiện các phép toán số học và logic và sắp xếp các lệnh với nhau. Trước khi đi sâu vào các phần chính, chúng ta hãy bắt đầu bằng cách xem các thành phần chính của CPU là gì và vai trò của nó là gì:
Hai thành phần chính của bộ xử lý
- Bộ phận điều khiển - CU
- Đơn vị số học và lôgic - ALU
Thiết bị Điều khiển - CU
Khối điều khiển CU là một phần của CPU giúp điều phối việc thực thi các lệnh. Nó cho biết phải làm gì. Theo hướng dẫn, nó giúp kích hoạt các dây kết nối CPU với các bộ phận khác nhau của máy tính bao gồm cả ALU . Khối điều khiển là thành phần đầu tiên của CPU nhận lệnh để xử lý.
Có hai loại đơn vị điều khiển:
- hardwired đơn vị điều khiển .
- có thể lập trình vi mô (được lập trình vi mô) đơn vị điều khiển .
Có dây cứng đơn vị điều khiển là phần cứng và cần thay đổi phần cứng để bổ sung, sửa đổi nó đang hoạt động ở vị trí có thể lập trình vi mô bộ điều khiển có thể được lập trình để thay đổi hành vi của nó. CU có dây cứng giúp xử lý lệnh nhanh hơn trong khi có thể lập trình vi mô linh hoạt hơn.
Đơn vị số học và logic - ALU
Đơn vị số học và logic ALU như tên gợi ý thực hiện tất cả các phép tính số học và logic. ALU thực hiện các phép toán như cộng, trừ. ALU bao gồm mạch logic hoặc cổng logic thực hiện các hoạt động này.
Hầu hết các cổng logic nhận hai đầu vào và tạo ra một đầu ra
Dưới đây là một ví dụ về mạch cộng một nửa lấy hai đầu vào và đầu ra kết quả. Ở đây A và B là đầu vào, S là đầu ra và C là giá trị mang theo.
Storage - Thanh ghi và Bộ nhớ
Công việc chính của CPU là thực hiện các lệnh được cung cấp cho nó. Để xử lý các hướng dẫn này hầu hết thời gian, nó cần dữ liệu. Một số dữ liệu là dữ liệu trung gian, một số là dữ liệu đầu vào và dữ liệu khác là đầu ra. Những dữ liệu này cùng với hướng dẫn được lưu trữ trong bộ nhớ sau:
Đăng ký
Sổ đăng ký là một tập hợp nhỏ nơi dữ liệu có thể được lưu trữ. Sổ đăng ký là sự kết hợp của chốt . Chốt còn được gọi là dép xỏ ngón là sự kết hợp của cổng logic nơi lưu trữ 1 bit thông tin.
Một chốt có hai dây đầu vào, dây ghi và đầu vào và một dây đầu ra. Chúng tôi có thể cho phép ghi dây để thực hiện các thay đổi đối với dữ liệu được lưu trữ. Khi dây ghi bị tắt, đầu ra luôn giữ nguyên.
CPU có các thanh ghi để lưu dữ liệu của đầu ra. Việc gửi đến bộ nhớ chính (RAM) sẽ chậm vì nó là dữ liệu trung gian. Dữ liệu này được gửi đến thanh ghi khác được kết nối bằng BUS . Một thanh ghi có thể lưu trữ lệnh, dữ liệu đầu ra, địa chỉ lưu trữ hoặc bất kỳ loại dữ liệu nào.
Bộ nhớ (RAM)
Ram là tập hợp các thanh ghi được sắp xếp và nhỏ gọn lại với nhau theo cách tối ưu hóa để có thể lưu trữ số lượng dữ liệu cao hơn. RAM (Bộ nhớ truy cập ngẫu nhiên) rất dễ bay hơi và dữ liệu sẽ bị mất khi chúng tôi tắt nguồn. Vì RAM là tập hợp các thanh ghi để đọc / ghi dữ liệu nên RAM sẽ nhận đầu vào là địa chỉ 8bit, đầu vào dữ liệu cho dữ liệu thực tế được lưu trữ và cuối cùng là trình hỗ trợ đọc và ghi hoạt động như đối với các chốt.
Hướng dẫn là gì
Lệnh là phép tính ở cấp độ chi tiết mà máy tính có thể thực hiện. Có nhiều loại lệnh khác nhau mà CPU có thể xử lý.
Hướng dẫn bao gồm:
- Số học chẳng hạn như thêm và trừ
- Hướng dẫn logic, chẳng hạn như và , hoặc và không
- Hướng dẫn dữ liệu, chẳng hạn như di chuyển , đầu vào , đầu ra , tải và cửa hàng
- Các hướng dẫn về Luồng điều khiển, chẳng hạn như goto , nếu… goto , cuộc gọi và quay lại
- Thông báo cho CPU rằng chương trình đã kết thúc Tạm dừng
Hướng dẫn được cung cấp cho máy tính sử dụng hợp ngữ hoặc được tạo bởi trình biên dịch hoặc được thông dịch bằng một số ngôn ngữ cấp cao.
Các hướng dẫn này được nối cứng bên trong CPU. ALU chứa số học và logic trong đó luồng điều khiển được quản lý bởi CU.
Trong một chu kỳ đồng hồ máy tính có thể thực hiện một lệnh nhưng máy tính hiện đại có thể thực hiện nhiều lệnh.
Một nhóm hướng dẫn mà máy tính có thể thực hiện được gọi là tập lệnh .
Đồng hồ CPU
Chu kỳ đồng hồ
Tốc độ của một máy tính được xác định bởi chu kỳ đồng hồ của nó. Đây là số chu kỳ đồng hồ mỗi giây một máy tính hoạt động. Một chu kỳ đồng hồ rất nhỏ như khoảng 250 * 10 * -12 giây. Chu kỳ xung nhịp càng cao thì bộ xử lý càng nhanh.
Chu kỳ xung nhịp CPU được đo bằng gHz ( Gigahertz ). 1gHz tương đương với 10 ⁹ Hz ( hertz ). Một hertz có nghĩa là một giây. Vì vậy, 1Gigahertz có nghĩa là 10 ⁹ chu kỳ mỗi giây.
Chu kỳ đồng hồ càng nhanh, càng có nhiều lệnh CPU có thể thực thi. Chu kỳ khóa =1 / tốc độ xung nhịpCPU Thời gian =số chu kỳ đồng hồ / tốc độ đồng hồ
Điều này có nghĩa là để cải thiện thời gian của CPU, chúng ta có thể tăng tốc độ xung nhịp hoặc giảm số chu kỳ xung nhịp bằng cách tối ưu hóa lệnh mà chúng tôi cung cấp cho CPU. Một số bộ xử lý cung cấp khả năng tăng chu kỳ xung nhịp nhưng vì đó là những thay đổi vật lý nên có thể quá nóng và thậm chí bốc khói / cháy.
Làm cách nào để một lệnh được thực thi
Hướng dẫn được lưu trữ trên RAM theo một thứ tự tuần tự. Đối với một Lệnh CPU giả định bao gồm OP mã (mã hoạt động) và bộ nhớ hoặc địa chỉ đăng ký .
Có hai thanh ghi bên trong Bộ điều khiển Thanh ghi lệnh (IR) sẽ tải mã OP của lệnh và Thanh ghi địa chỉ lệnh sẽ tải địa chỉ của lệnh đang thực thi hiện tại. Có các thanh ghi khác bên trong CPU lưu trữ giá trị được lưu trữ trong địa chỉ của 4 bit cuối cùng của một lệnh.
Hãy lấy một ví dụ về một tập hợp hướng dẫn có thêm hai số. Sau đây là các hướng dẫn cùng với mô tả ở đó:
BƯỚC 1 - LOAD_A 8:
Ban đầu, lệnh được lưu trong RAM, giả sử <1100 1000>. 4 bit đầu tiên là mã op. Điều này xác định hướng dẫn. Hướng dẫn này được tìm nạp vào IR của đơn vị điều khiển. Hướng dẫn là giải mã là load_A có nghĩa là nó cần tải dữ liệu ở địa chỉ 1000, là 4 bit cuối cùng của lệnh để đăng ký A.
BƯỚC 2 - LOAD_B 2
Tương tự như trên, điều này tải dữ liệu trong bộ nhớ địa chỉ 2 (0010) vào thanh ghi CPU B.
BƯỚC 3 - THÊM B A
Bây giờ hướng dẫn tiếp theo là cộng hai số này. Tại đây CU ra lệnh cho ALU thực hiện thao tác thêm và lưu kết quả trở lại thanh ghi A.
BƯỚC 4 - STORE_A 23
Đây là một tập hợp hướng dẫn rất đơn giản giúp cộng hai số.
Chúng tôi đã thêm thành công hai số!
BUS
Tất cả dữ liệu giữa CPU, thanh ghi, bộ nhớ và thiết bị IO được chuyển qua bus. Để tải dữ liệu vào bộ nhớ mà nó vừa thêm vào, CPU đặt địa chỉ bộ nhớ thành bus địa chỉ và kết quả của tổng thành bus dữ liệu và cho phép tín hiệu phù hợp trong bus điều khiển. Bằng cách này, dữ liệu được tải vào bộ nhớ với sự trợ giúp của bus.
Bộ nhớ đệm
CPU cũng có cơ chế tìm nạp trước lệnh vào bộ nhớ đệm của nó. Như chúng ta biết có hàng triệu lệnh mà một bộ xử lý có thể hoàn thành trong vòng một giây. Điều này có nghĩa là sẽ có nhiều thời gian hơn để tìm nạp lệnh từ RAM hơn là thực thi chúng. Vì vậy, bộ nhớ đệm CPU tìm nạp trước một số lệnh và cả dữ liệu để quá trình thực thi diễn ra nhanh chóng.
Nếu dữ liệu trong bộ nhớ đệm và bộ nhớ hoạt động khác nhau, dữ liệu được đánh dấu là bit bẩn .
Hướng dẫn pipelining
CPU hiện đại sử dụng Đường dẫn hướng dẫn cho song song trong thực hiện lệnh. Tìm nạp, Giải mã, Thực thi. Khi một lệnh ở giai đoạn giải mã, CPU có thể xử lý một lệnh khác cho giai đoạn tìm nạp.
Điều này có một vấn đề khi một lệnh này phụ thuộc vào lệnh khác. Vì vậy, bộ xử lý thực thi lệnh không phụ thuộc và theo thứ tự khác nhau.
Máy tính đa lõi
Về cơ bản, nó là một CPU khác nhau nhưng có một số tài nguyên được chia sẻ như bộ nhớ cache.
Hiệu suất
Hiệu suất của CPU được xác định bởi thời gian thực thi của nó. Hiệu suất =1 / thời gian thực thi
giả sử phải mất 20 mili giây để một chương trình thực thi. Hiệu suất của CPU là 1/20 =0,05ms Hiệu suất tương đối =thời gian thực thi 1 / thời gian thực thi 2
Yếu tố được xem xét đối với hiệu suất của CPU là thời gian thực hiện lệnh và tốc độ xung nhịp của CPU. Vì vậy, để tăng hiệu suất của một chương trình, chúng ta cần phải tăng tốc độ xung nhịp hoặc giảm số lượng lệnh trong một chương trình. Tốc độ của bộ xử lý có giới hạn và máy tính hiện đại với nhiều lõi có thể hỗ trợ hàng triệu lệnh trong một giây. Nhưng nếu chương trình chúng tôi đã viết có nhiều hướng dẫn, điều này sẽ làm giảm hiệu suất tổng thể.
Ký hiệu Big O xác định với đầu vào đã cho hiệu suất sẽ bị ảnh hưởng như thế nào.
Có rất nhiều tối ưu hóa được thực hiện trong CPU để làm cho nó nhanh hơn và hoạt động nhiều nhất có thể. Trong khi viết bất kỳ chương trình nào, chúng ta cần xem xét việc giảm số lượng lệnh mà chúng ta cung cấp cho CPU sẽ làm tăng hiệu suất của chương trình máy tính như thế nào.
Cũng được đăng trên Blog Milap Neupane:CPU hoạt động như thế nào