Quá trình nhận lệnh trong cpu diễn ra gồm các bước:

Tất cả các máy tính hiện đại đều có thể thực hiện nhiều việc cùng một lúc. Trong khi thực hiện chương trình của người sử dụng, máy tính có thể đọc dữ liệu từ đĩa và đưa ra màn hình hoặc máy in. Trong môi trường đa chương trình (multiprogramming system), một CPU có thể chuyển từ chương trình này sang chương trình khác, thực hiện mỗi chương trình trong khoảng 1% hoặc 1/10 mili giây. Nếu nói chính xác, thì tại một thời điểm, CPU chỉ thực hiện được một chương trình. Nhưng nếu xét trong khoảng thời gian phần trăm giây thì CPU có thể thực hiện nhiều công việc. Để hổ trợ hoạt động đa nhiệm,hệ thống máy tính cần phải có khả năng thực hiện nhiều tác vụ xử lý đồng thời nhưng việc điều khiển hoạt động song hành ở cấp độ phần cứng là rất khó khăn.Vì vậy,các nhà thiết kế hệ điều hành đề xuất một mô hình song hành giả lập bằng cách chuyển đổi bộ xử lý qua lại giữa các chương trình để duy trì hoạt động của nhiều chương trình phải cùng một thời điểm.Trong mô hình này các chương trình của hệ thống được tổ chức thành các tiến trình(process). Như vậy cá thể coi tiến trình là một chương trình đang xử lý,nó sử dụng một con trỏ lệnh,tập các thanh ghi và các biến.Để hoàn thành nhiệm vụ của mình,các tiến trình còn có thể yêu cầu một số tài nguyên hệ thống như: CPU,bộ nhớ và các thiết bị. Chúng ta cần phân biệt rỏ tiến trình và chương trình.Chương trình là một thực thể thụ động chưa các chỉ thị điều khiển máy tính thi hành một tác vụ cụ thể nào đó.Khi thực hiện các chỉ thị này ,chương trình được chuyển thành các tiến trình là một thực thể hoạt động,với con trỏ lệnh xác định kèm them tài nguyên phục vụ cho hoạt động. Vậy tóm lại ,tiến trình là một bộ phận của một chương trình đang thực hiện, đơn vị thực hiện tiến trình là processer.

Điều phối hoạt động của các tiến trình là một vấn đề rất phức tạp, đòi hỏi hệ điều hành khi giải quyết phải xem xét nhiều yếu tố khác nhau để có thể đạt được những mục tiêu đề ra. Một số đặc tính của tiến trình cần được quan tâm như tiêu chuẩn điều phối: -Tính hướng xuất/ nhập của tiến trình: Khi một tiến trình được nhận CPU, chủ yếu nó chỉ sử dụng CPU đến khi phát sinh một yêu cầu nhập xuất? Hoạt động của các tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU, mỗi lượt trong một thời gian khá ngắn. -Tính hướng xử lý của tiến trình: Khi một tiến trình được nhận CPU, nó có khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó? Hoạt động của các tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU, nhưng mỗi lượt trong một thời gian đủ dài. -Tiến trình tương tác hay xử lý theo lô: Người sử dụng theo kiểu tương tác thường yêu cầu được hồi đáp tức thời đối với các yêu cầu của họ, trong khi các tiến trình của các tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian chấp nhận được. -Độ ưu tiên của tiến trình: Các tiến trình có thế được phân cấp theo một số tiêu chuẩn đánh giá nào đó, một cách hợp lý, các tiến trình quan trọng hơn(có độ ưu tiên cao hơn) cần được ưu tiên cao hơn. -Thời gian đã sử dụng CPU của tiến trình: một số quan điểm ưu tiên chọn những tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời gian nhất để hoàn tất và rời khỏi hệ thống. Tuy nhiên cũng có quan điểm cho răng các tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất, do vậy ưu tiên chọn chúng. -Thời gian còn lại tiến trình cần để hoàn tất: Có thể giảm thiểu thời gian chờ trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để hoàn tát được thực hiện trước. Tuy nhiên đáng tiếc là rất hiếm khi biết được tiến trình cần bao nhiêu thời gian nữa để kết thúc xử lý.

Có thể chia thành hai loại: tiến trình tuần tự (MS_DOS) và tiến trình song song( uniprocesser và multiprocesser). Tiến trình tuần tự: là các tiến trình mà điểm khởi tạo của nó là điểm kết thúc của tiến trình trước đó. Tiến trình song song : là các tiến trình mà điểm khởi tạo của tiến trình này mằn ở thân của các tiến trình khác, tức là có thể khởi tạo một tiến trình mới khi các tiến trình trước đó chưa kết thúc.Trong này tiến trình song song được chia thành nhiều loại: -- Tiến trình song song độc lập: Các tiến trình hoạt động song song nhưng không có quan hệ thông tin với nhau, trong trường hợp này hệ điều hành phải thiết lập cơ chế bảo vệ dữ liệu của các tiến trình, và cấp phát tài nguyên cho các tiến trình một cách hợp lý. -- Tiến trình song song có quan hệ thông tin : Trong quá trình hoạt động các tiến trình trao đổi thông tin với nhau.Hai tiến trình A và B được gọi là có quan hệ thông tin với nhau nếu tiến trình này có gửi thông báo cho tiến trình kia. Tiến trình gửi thông báo có thể không cần biết tiến trình nhận có tồn tại hay không? ở đâu? và đang ở giai đoạn nào? -- Tiến trình song song phân cấp : Trong qua trình hoạt động một tiến trình có thể khởi tạo các tiến trình khác hoạt động song song với nó, tiến trình khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con.

Trong mô hình này hệ điều hành phải giải quyết vấn đề cấp phát tài nguyên cho các tiến trình con. Tiến trình con nhận tài nguyên ở đâu? từ tiến trình cha hay từ hệ thống. -- Tiến trình song song đồng mức: Là các tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyên tắc lần lượt, mỗi tiến trình sau một khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình kia.

Mỗi thiết bị máy tính điện tử đều có một CPU.

Là một lập trình viên hay đơn giản là một người thích công nghệ, chắc hẳn bạn đã nghe nói về thuật ngữ công nghệ này trước đây, nhưng nó chính xác là gì? CPU là gì và cách thức hoạt động của nó như thế nào? Trong bài viết lần này, mình sẽ chia sẻ với các bạn những điều cơ bản về CPU và mình sẽ cung cấp cho bạn cái nhìn tổng quan về cách hoạt động của nó.

CPU là gì và bạn tìm thấy nó ở đâu trong máy tính?

Quá trình nhận lệnh trong cpu diễn ra gồm các bước:

CPU là viết tắt của Central Processing Unit. Nó còn được gọi là bộ xử lý hoặc bộ vi xử lý.

Đó là một trong những phần cứng quan trọng nhất trong bất kỳ hệ thống máy tính kỹ thuật số nào – nếu không muốn nói là quan trọng nhất. Bên trong một CPU có hàng ngàn bóng bán dẫn siêu nhỏ, là những công tắc nhỏ điều khiển dòng điện chạy qua các mạch tích hợp.

Bạn sẽ tìm thấy CPU nằm trên bo mạch chủ của máy tính. Bo mạch chủ của máy tính là bảng mạch chính bên trong máy tính. Công việc của nó là kết nối tất cả các thành phần phần cứng với nhau. Thường được coi là bộ não và trái tim của tất cả các hệ thống kỹ thuật số, CPU chịu trách nhiệm thực hiện tất cả công việc. Nó thực hiện mọi hành động đơn lẻ mà một máy tính hoạt động và thực thi các chương trình.

Chương trình máy tính là gì và chúng được lưu trữ ở đâu?

Quá trình nhận lệnh trong cpu diễn ra gồm các bước:

Bạn có một chương trình cho phép bạn sử dụng trình duyệt web hoặc trình xử lý văn bản. Bạn có một cái thực hiện các phép toán trên máy tính hoặc cho phép bạn nhập các chữ cái và ký tự trên bàn phím. Và có những chương trình quản lý việc nhấp và chọn các phần tử bằng chuột máy tính hoặc nhấn vào touchpad máy tính xách tay của bạn.

Dù nó có thể là gì, thì có một chương trình cho tất cả các hoạt động của máy tính.

Chương trình là tập hợp các tập lệnh cần được thực hiện theo trình tự logic, tuần tự và được tuân thủ chính xác từng bước. Chúng được viết bằng một ngôn ngữ có thể đọc được của con người – một ngôn ngữ lập trình.

Máy tính không hiểu ngôn ngữ lập trình trực tiếp, vì vậy chúng cần được dịch sang một dạng dễ hiểu hơn. Dạng đó được gọi là ngôn ngữ máy hoặc nhị phân.

Nhị phân là một hệ thống số hai cơ số. Nó chỉ bao gồm hai số: 0 và 1.

Vì vậy, các chương trình được lưu trữ dưới dạng chuỗi các bit. Bit là một tên gọi khác của các chữ số nhị phân (dãy số 1 và 0).

Các chương trình được lưu trữ vĩnh viễn và lâu dài trong thiết bị lưu trữ, cho dù đó là ổ cứng HDD hay SSD.

Đây là những loại bộ nhớ không bay hơi, có nghĩa là chúng lưu trữ dữ liệu ngay cả khi mất điện. Tuy nhiên, trong khi một chương trình đang hoạt động và hiện đang được sử dụng, tất cả dữ liệu của chương trình đó được lưu trữ trong main, bộ nhớ chính hoặc RAM (Bộ nhớ truy cập ngẫu nhiên). Loại bộ nhớ này rất dễ bay hơi và tất cả dữ liệu sẽ bị mất khi tắt nguồn.

CPU làm những gì?

Nói chung, CPU chịu trách nhiệm xử lý các phép toán logic và toán học cũng như thực hiện các lệnh mà nó được đưa ra. Nó có thể thực hiện hàng triệu lệnh mỗi giây – nhưng chỉ có thể thực hiện một lệnh tại một thời điểm.

Đầu tiên, nó nhận một số loại đầu vào, thường từ thiết bị đầu vào (chẳng hạn như màn hình hiển thị, bàn phím, chuột hoặc micrô) hoặc từ chương trình phần mềm ứng dụng / hệ thống (như trình duyệt web hoặc hệ điều hành của bạn).

Quá trình nhận lệnh trong cpu diễn ra gồm các bước:

Sau đó, CPU phụ trách bốn nhiệm vụ:

  1. Nạp(Fetching) các lệnh từ bộ nhớ, để biết cách xử lý dữ liệu đầu vào và biết các lệnh tương ứng cho dữ liệu đầu vào cụ thể mà nó nhận được. Cụ thể, nó tìm kiếm địa chỉ của lệnh tương ứng và chuyển tiếp yêu cầu tới RAM. CPU và RAM liên tục hoạt động cùng nhau. Đây cũng được gọi là đọc từ bộ nhớ. Giải mã hoặc dịch các hướng dẫn thành một dạng mà CPU có thể hiểu được, đó là định dạng máy (nhị phân). Đang thực hiện và thực hiện các hướng dẫn đã cho. Lưu trữ kết quả của việc thực thi trở lại bộ nhớ để truy xuất sau này nếu và khi được yêu cầu. Đây cũng được gọi là ghi vào bộ nhớ.
  2. Giải mã(Decode) hoặc dịch các lệnh thành một dạng mà CPU có thể hiểu được, đó là định dạng máy (nhị phân).
  3. Thực hiện(Executing) và xử lý các lệnh đã cho theo thứ tự.
  4. Lưu trữ(Store) kết quả của việc thực thi trở lại bộ nhớ để truy xuất sau này nếu và khi được yêu cầu. Đây cũng được gọi là ghi vào bộ nhớ.

Cuối cùng, có một đầu ra nào đó, chẳng hạn như in thứ gì đó ra màn hình. Quá trình được mô tả ở trên được gọi là chu kỳ tìm nạp-thực thi (fetch-execute) và nó diễn ra hàng triệu lần mỗi giây.

Các bộ phận chính của CPU

Quá trình nhận lệnh trong cpu diễn ra gồm các bước:

Bây giờ bạn đã biết các tác vụ cơ bản mà CPU thực hiện cho mọi hoạt động xảy ra trên máy tính, vậy các bộ phận của CPU giúp hoàn thành công việc đó là gì?

Dưới đây là một số thành phần quan trọng bên trong nó:

  • CU (viết tắt của Control Unit). Nó điều chỉnh luồng của đầu vào và đầu ra. Đó là phần tìm nạp và truy xuất các lệnh từ bộ nhớ chính và sau đó giải mã chúng.
  • ALU (viết tắt của Artithmetic Logic Unit). Phần mà tất cả quá trình xử lý xảy ra. Đây là nơi diễn ra tất cả các phép tính toán học, chẳng hạn như cộng, trừ, nhân và chia, cũng như tất cả các phép toán logic để ra quyết định, chẳng hạn như so sánh dữ liệu.
  • Registers. Một vị trí bộ nhớ cực kỳ nhanh chóng. Dữ liệu và hướng dẫn đang được xử lý trong chu kỳ tìm nạp-thực thi được lưu trữ ở đó, để bộ xử lý truy cập nhanh.

Các lõi(core) CPU là gì?

Trước đó, bạn đã biết rằng một CPU thường chỉ có thể thực hiện một hành động tại một thời điểm. Nó thực hiện một lệnh tại một thời điểm và nó thực hiện điều này với sự trợ giúp của các lõi vật lý.

Về cơ bản, lõi là chính một CPU, một thiết bị riêng biệt bên trong chip CPU chính. Điều này có nghĩa là nó có khả năng chỉ làm một việc tại một thời điểm.

Tuy nhiên, các máy tính hiện đại có khả năng hỗ trợ nhiều hơn một lõi bên trong chip chính. CPU càng có nhiều lõi, sức mạnh tính toán càng lớn và càng có nhiều tác vụ có thể chạy và hoàn thành đồng thời, làm cho CPU trở thành một bộ đa nhiệm nối tiếp.

Ví dụ, CPU có lõi kép, nghĩa là có hai CPU trên cùng một chip và có thể chạy hai lệnh cùng một lúc. CPU lõi tứ có nghĩa là có bốn CPU trên cùng một con chip, CPU lõi sáu nghĩa là có sáu lõi, v.v.

Siêu phân luồng là gì?

Các CPU hiện đại cũng hỗ trợ một công nghệ gọi là siêu phân luồng.

Cách hoạt động của công nghệ này là một lõi vật lý duy nhất xuất hiện dưới dạng nhiều lõi vật lý, khiến Hệ điều hành nghĩ rằng có nhiều lõi hơn thực tế. Điều này làm cho máy tính nghĩ rằng nó có nhiều năng lượng hơn thực tế.

Vì vậy, ngoài các lõi vật lý được đề cập trong phần trên, còn có các lõi ảo này, hoặc các luồng như chúng vẫn được gọi. Chúng không phải là lõi vật lý thực tế, nhưng chúng có vẻ như vậy. Sự kết hợp của cả lõi vật lý và lõi ảo làm cho thời gian thực thi các chương trình nhanh hơn và cung cấp cho CPU nhiều sức mạnh tính toán hơn.

Kết luận

Cảm ơn bạn đã đọc đến cuối! Hy vọng rằng bây giờ bạn đã hiểu rõ hơn về CPU là gì, chúng làm gì và tại sao chúng lại quan trọng như vậy.

Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.

Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU

KHOÁ HỌC BOOTCAMP JAVA/PHP/.NET TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG