Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Mac

Bên trong CPU:Cách các bóng bán dẫn xây dựng kiến trúc tập lệnh

Bên trong CPU:Cách các bóng bán dẫn xây dựng kiến trúc tập lệnh

CPU (Bộ xử lý trung tâm) là bộ não của máy tính và là kết nối chính giữa phần mềm và phần cứng. Nó giúp cho việc vận hành phần mềm trên phần cứng có thể thực hiện được.

Tuy nhiên, nó hoạt động chi tiết như thế nào? Và làm thế nào nó có thể kết nối các chương trình với phần cứng máy tính nhất định?

Bài viết này nhằm mục đích giúp bạn hiểu được kết nối này bằng cách giải thích sâu sắc cách thức hoạt động của CPU. Chủ đề này thường chỉ quen thuộc với những người có nền tảng về thiết kế phần cứng máy tính từ trường đại học.

Thông thường, nhiều sinh viên tốt nghiệp khoa học máy tính không bao giờ có lớp học về logic kỹ thuật số nâng cao. Vì vậy, ngay cả những lập trình viên giàu kinh nghiệm nhất cũng có thể thiếu hiểu biết về cách CPU thực sự xử lý thông tin.

Mặc dù chúng tôi sẽ không thiết kế cổng logic từ bóng bán dẫn hoặc các thành phần CPU từ cổng logic, nhưng chúng tôi sẽ đề cập đến các khái niệm chính cần thiết để hiểu cách CPU xử lý dữ liệu được tạo bởi chương trình viết bằng ngôn ngữ lập trình.

Chúng ta sẽ thấy:

  • Tương tự:Giới thiệu về yếu tố giúp CPU hoạt động
  • Trung tâm bộ nhớ:Tìm hiểu về RAM và ROM
  • Con đường dữ liệu:Điều hướng đường dẫn dữ liệu CPU
  • Bộ điều khiển lưu lượng:Vai trò của máy trạng thái trong CPU
  • Quy trình hàng ngày:Giải thích về chu trình tìm nạp-thực thi
  • Sách quy tắc:Giải mã kiến trúc tập lệnh (ISA)
  • Từ ngôn ngữ lập trình đến mã máy
  • Thách thức của Thành phố:Giải quyết các vấn đề về CPU
  • Kết luận:Đơn vị kiểm soát và phần dữ liệu tốt hơn

Tôi sẽ sử dụng Intel 8008 làm tài liệu tham khảo.

Tương tự:Giới thiệu về yếu tố tạo nên hoạt động của CPU

Để hiểu sâu sắc cách thức hoạt động của máy tính, hãy tưởng tượng một thành phố như kịch bản đời thực của chúng ta. Chúng ta sẽ so sánh các thành phần máy tính với các khu vực của thành phố này.

Bằng cách này, bạn sẽ có được cái nhìn rõ ràng hơn về các bộ phận khác nhau của CPU và lý do tại sao chúng lại quan trọng. Sau đó chúng ta sẽ đi sâu vào từng thành phần

Trung tâm bộ nhớ:Tìm hiểu về RAM và ROM

RAM (Bộ nhớ truy cập ngẫu nhiên) giống như một thư viện công cộng của thành phố:nó lưu trữ sách và thông tin để mọi người mượn và trả khi cần.

Trong máy tính, RAM tải dữ liệu và hướng dẫn từ bộ nhớ máy tính mà CPU cần để xử lý dữ liệu.

ROM (Bộ nhớ chỉ đọc) giống như một kho lưu trữ lịch sử trong thành phố:Nó chỉ lưu trữ những hồ sơ sẽ không bao giờ thay đổi và không bao giờ được công chúng mượn.

Con đường dữ liệu:Điều hướng đường dẫn dữ liệu CPU

Đường dẫn dữ liệu CPU là mạng lưới các con đường trong thành phố. Xe buýt và thanh ghi đường dẫn dữ liệu CPU hoạt động giống như mạng lưới đường bộ của thành phố.

Giống như đường giúp ô tô và con người di chuyển, đường dẫn dữ liệu CPU đảm bảo dữ liệu di chuyển trong CPU một cách hiệu quả

Bộ điều khiển lưu lượng:Vai trò của máy trạng thái trong CPU

Máy trạng thái hoạt động như hệ thống điều khiển giao thông.

Hệ thống điều khiển giao thông quản lý luồng phương tiện và máy trạng thái quản lý luồng dữ liệu theo hướng dẫn được cung cấp cho CPU.

Quy trình hàng ngày:Giải thích về chu trình tìm nạp-thực thi

Chu trình tìm nạp-thực thi là lộ trình đi lại hàng ngày của cư dân thành phố.

Hàng ngày, mọi người quyết định mình sẽ đi đâu, đi đến đó, thực hiện nhiệm vụ và trở về nhà. Quá trình này luôn được lặp lại.

Theo cách tương tự, CPU tìm nạp các hướng dẫn, giải mã chúng và thực thi chúng theo một chu trình lặp đi lặp lại.

Sách quy tắc:Giải mã kiến trúc tập lệnh (ISA)

Kiến trúc tập lệnh giống như luật giao thông của thành phố.

Luật giao thông thành phố quy định những việc làm hợp pháp trong thành phố liên quan đến việc vận chuyển người dân.

Kiến trúc tập lệnh là tập hợp các quy tắc và hướng dẫn mà CPU có thể thực thi.

Trung tâm bộ nhớ:Tìm hiểu về RAM và ROM

Bên trong CPU:Cách các bóng bán dẫn xây dựng kiến trúc tập lệnh Ảnh của Valentine Tanasovich:https://www.pexels.com/photo/black-and-gray-computer-motherboard-2588757/

RAM là viết tắt của Bộ nhớ truy cập ngẫu nhiên và có thể được sử dụng để đọc và ghi dữ liệu.

CPU lấy dữ liệu từ bộ nhớ máy tính lên RAM trước để tránh thời gian chờ đợi lâu.

Sau đó, nó sử dụng dữ liệu từ RAM để hoàn thành các hướng dẫn.

Chúng được sử dụng trong máy tính và nhiều thiết bị điện tử do bộ nhớ không ổn định. Điều đó có nghĩa là dữ liệu chỉ ở đó khi máy tính được bật, lý tưởng cho việc lưu trữ tạm thời trong khi thiết bị hoạt động.

ROM là viết tắt của Bộ nhớ chỉ đọc. Trong đó chỉ tồn tại dữ liệu được thêm vào trong quá trình sản xuất máy tính.

Chúng được sử dụng rộng rãi trong phần sụn cho các thiết bị, BIOS và các hệ thống nhúng nhỏ.

Điều này là do ROM là bộ nhớ không khả biến. Điều này có nghĩa là nó vẫn còn trong bộ nhớ khi thiết bị tắt nguồn, điều này rất quan trọng đối với việc lưu trữ dữ liệu vĩnh viễn.

Con đường dữ liệu:Điều hướng đường dẫn dữ liệu CPU

Bên trong CPU:Cách các bóng bán dẫn xây dựng kiến trúc tập lệnh Ảnh của Rogeer Marques:https://www.pexels.com/photo/close-up-shot-of-a-chip-processor-11272008/

Đường dẫn dữ liệu CPU là một mạch kỹ thuật số phức tạp có nhiều thành phần hoạt động với nhau, chẳng hạn như:

  • Đơn vị logic số học (ALU): Thực hiện các phép tính số học và logic bên trong phần dữ liệu CPU.
  • Đăng ký: Vị trí lưu trữ nhỏ, nhanh dành cho dữ liệu tạm thời được lấy từ RAM.
  • Xe buýt: Bus dữ liệu, điều khiển và địa chỉ là các dây được sử dụng bên trong đường dẫn dữ liệu CPU để truyền thông tin.

Mặc dù CPU đã thay đổi rất nhiều kể từ Intel 8008 nhưng đây là một số thành phần vẫn đóng vai trò là nền tảng cho tất cả các CPU.

Nhờ chúng, có thể cho phép luồng dữ liệu nhưng không thể kiểm soát luồng thực tế. Đây là công việc của bộ điều khiển trong CPU, được tạo trong Intel 8008 dưới dạng máy trạng thái.

Bộ điều khiển lưu lượng:Vai trò của máy trạng thái trong CPU

Máy trạng thái là một hệ thống chuyển đổi giữa các trạng thái khác nhau để thực hiện các tác vụ.

Chúng bao gồm một số trạng thái và chuyển tiếp. Chúng được sử dụng trong Intel 8008 để tạo ra bộ điều khiển do cấu trúc và cách hiệu quả của nó để quản lý chuỗi hoạt động cần thiết để xử lý các hướng dẫn

Mỗi trạng thái có thể kích hoạt một hoặc nhiều thành phần CPU để xử lý một lệnh lắp ráp nhất định.

Bằng cách này, một số phần đường dẫn dữ liệu CPU nhất định được kích hoạt để hoàn thành lệnh.

Ngoài ra, nhờ có các máy trạng thái này, CPU đã hoàn thiện và có thể thực hiện tất cả hướng dẫn mà người dùng muốn trong một vòng lặp liên tục được gọi là chu trình tìm nạp-thực thi.

Quy trình hàng ngày:Giải thích về chu trình tìm nạp-thực thi

Máy trạng thái trong CPU kiểm soát cách đường dẫn dữ liệu CPU phối hợp với nhau để thực hiện một lệnh nhất định.

Ngày nay, mỗi máy tính đều nhận được hàng triệu lệnh mỗi giây. Bằng cách này, các máy trạng thái hoạt động như một vòng lặp để nhận lệnh và thực thi chúng.

Quá trình này được gọi là chu trình tìm nạp-thực thi, trong đó CPU truy xuất và thực thi các lệnh:

  • Tìm nạp: CPU lấy lệnh từ bộ nhớ.
  • Giải mã: Lệnh tìm nạp được giải mã để xác định hành động cần thiết.
  • Thực thi: Lệnh đã giải mã được thực thi bằng cách sử dụng các thành phần CPU thích hợp.
  • Viết lại: Kết quả thực thi được ghi lại vào bộ nhớ hoặc sổ đăng ký.

Trong giai đoạn tìm nạp, bộ điều khiển sẽ yêu cầu RAM đưa ra lệnh tiếp theo cho CPU.

Trong giai đoạn giải mã, CPU diễn giải lệnh và trong giai đoạn thực thi, nó thực hiện thao tác. Sau đó, giai đoạn ghi lại đảm bảo kết quả được lưu trữ chính xác.

Chu kỳ này tiếp tục trong khi PC được bật. Bằng cách này, trong các bộ xử lý hiện đại, xử lý hàng tỷ lệnh mỗi giây.

Nhưng còn dữ liệu từ bàn phím hoặc chuột thì sao?

Dữ liệu này không đến từ RAM mà được xử lý thông qua cơ chế gọi là ngắt. Trong khi CPU chạy các lệnh, nó có thể phát hiện khi nào dữ liệu đến từ các thiết bị ngoại vi.

Nếu điều này xảy ra, CPU sẽ dừng tác vụ hiện tại và ưu tiên các lệnh từ thiết bị ngoại vi. Sau đó, CPU sẽ tiếp tục các tác vụ trước đó.

Có nhiều cách để quản lý các ngắt, trong đó một số cách phổ biến nhất là:

  1. Các ngắt được thăm dò :CPU kiểm tra định kỳ xem có xảy ra gián đoạn hay không.
  2. Các ngắt có vectơ :Thiết bị ngắt sẽ hướng CPU tới quy trình phục vụ ngắt thích hợp.
  3. Các ngắt được ưu tiên :Các ngắt được chỉ định mức độ ưu tiên khác nhau, đảm bảo các nhiệm vụ quan trọng được xử lý trước.

Bằng cách này, với những cơ chế này, CPU sẽ duy trì hiệu suất của nó trong khi tương tác với các thiết bị ngoại vi.

Sách quy tắc:Giải mã kiến trúc tập lệnh (ISA)

Với bộ điều khiển, CPU và RAM hoàn chỉnh, có thể thực hiện nhiều lệnh.

Nhưng những lệnh nào có thể được thực hiện trên một CPU nhất định? Và có bao nhiêu? Đây là những gì Kiến trúc tập lệnh (ISA) giải quyết.

ISA xác định một tập hợp các lệnh mà một CPU nhất định có thể thực thi. Nó cho phép các lập trình viên hiểu được bộ xử lý có thể và không thể làm gì mà không cần phải hiểu tất cả phần cứng logic kỹ thuật số bên trong nó.

Bằng cách này, nó hoạt động như một giao diện giữa phần mềm và phần cứng.

Các khía cạnh chính của ISA:

  • Các loại hướng dẫn: Bao gồm các lệnh số học, logic, điều khiển và truyền dữ liệu.
  • Chế độ địa chỉ: Các phương pháp xác định toán hạng của lệnh.
  • Đăng ký: Tập hợp các thanh ghi có sẵn để sử dụng theo hướng dẫn.

ISA phổ biến:

  • x86: Được sử dụng rộng rãi trong bộ xử lý máy tính để bàn và máy chủ.
  • CÁNH TAY: Chiếm ưu thế trong thiết bị di động và thiết bị nhúng nhờ hiệu quả sử dụng năng lượng.
  • RISC-V: Một ISA tiêu chuẩn mở được thiết kế cho nhiều ứng dụng.

Mỗi CPU thường có phiên bản kiến trúc tập lệnh riêng. Và kiến trúc tập lệnh thường được xác định bằng các ngôn ngữ lập trình hợp ngữ.

Đây là lý do tại sao có rất nhiều phiên bản của ngôn ngữ lập trình hợp ngữ.

Vì mỗi CPU có thông số kỹ thuật phần cứng riêng nên mỗi CPU sẽ có các thành phần tương tự với các CPU khác và do đó có các ngôn ngữ lập trình hợp ngữ tương tự được liên kết.

Việc lựa chọn ISA sẽ tác động đến thiết kế, hiệu suất và khả năng tương thích của CPU với phần mềm.

Ví dụ:độ phức tạp của x86 cho phép tạo ra các ứng dụng máy tính để bàn mạnh mẽ, trong khi tính đơn giản của ARM giúp các thiết bị di động tiết kiệm năng lượng.

Từ ngôn ngữ lập trình đến mã máy

Bên trong CPU:Cách các bóng bán dẫn xây dựng kiến trúc tập lệnh Ảnh của luis gomes:https://www.pexels.com/photo/close-up-photo-of-programming-of-codes-546819/

Mặc dù mỗi bộ xử lý có ngôn ngữ hợp ngữ riêng nhưng việc quản lý mã trong hợp ngữ và viết mã trong hợp ngữ để tạo các chương trình lớn có thể phức tạp.

Việc này rất phức tạp và có thể dẫn đến lãng phí thời gian vào việc sửa chữa mọi thứ và chi tiết thay vì quản lý việc phát triển chương trình và thực sự phát triển nó theo cách nhanh hơn và dễ dàng hơn.

Để giải quyết vấn đề này, nhiều ngôn ngữ lập trình đã được tạo ra từ hợp ngữ. Chúng tôi viết mã bằng ngôn ngữ lập trình và sau đó nó được chuyển đổi thành hợp ngữ.

Bằng cách này, thay vì dành thời gian vào chi tiết, bạn có thể tập trung vào những việc quan trọng hơn như phát triển hệ thống và thiết kế thuật toán.

Đây là quá trình mà hầu hết các ngôn ngữ lập trình chuyển đổi mã của chúng thành hợp ngữ:

  1. Chuyển đổi mã thành mã hợp ngữ thông qua trình biên dịch hoặc trình thông dịch.
  2. Mã hợp ngữ sau đó được chuyển đổi thành mã máy thô và được CPU thực thi.
  3. Một vòng lặp cụ thể trong máy trạng thái của CPU đã hoàn tất.
  4. Sau đó, CPU tìm nạp và thực hiện lệnh tiếp theo.

Hãy xem hai ví dụ về các ngôn ngữ lập trình thực hiện điều này!

Ngôn ngữ lập trình C

Ngôn ngữ lập trình C được tạo ra từ hợp ngữ vào đầu những năm 1970. Nó được tạo ra để cung cấp ngôn ngữ cấp cao hơn để lập trình cấp hệ thống hiệu quả, đồng thời cho phép thao tác phần cứng.

Với trình biên dịch, mã C được chuyển đổi thành tập hợp và sau đó được xử lý bởi CPU hoàn chỉnh.

Nhờ sự chuyển đổi này, bằng cách viết chương trình bằng ngôn ngữ lập trình C, chúng ta có thể giải quyết nhiều vấn đề một cách hiệu quả hơn, chẳng hạn như:

  • Lỗi quản lý bộ nhớ
  • Tràn bộ đệm
  • Vấn đề tối ưu hóa thủ công

Ngày nay, ngay cả đối với các tác vụ đơn giản hơn, mã hợp ngữ được chuyển đổi từ trình biên dịch C vẫn hiệu quả và đáng tin cậy hơn nhiều so với việc con người viết mã hợp ngữ.

Nếu bạn muốn tìm hiểu thêm về trình biên dịch C, bạn có thể xem:

Ngôn ngữ lập trình Python

Ngôn ngữ lập trình Python được tạo ra từ C vào cuối những năm 1980.

Mục tiêu của nó là cung cấp ngôn ngữ lập trình cấp cao, thân thiện với người dùng, nhấn mạnh vào khả năng đọc và tính đơn giản, cho phép phát triển ứng dụng nhanh chóng.

Trong Python, trình thông dịch chuyển đổi mã Python thành mã byte theo từng dòng.

Và mã byte này được chuyển đổi thành mã máy trong CPU và được xử lý trong chu trình tìm nạp-thực thi.

Bằng cách này, mọi người có thể lập trình dễ dàng hơn và tập trung vào các chương trình lớn hơn, chẳng hạn như:

  • Mô hình trí tuệ nhân tạo
  • Ứng dụng web
  • Phân tích dữ liệu
  • Tính toán khoa học

Tuy nhiên, thách thức với CPU trong tất cả các ngôn ngữ lập trình là nó xử lý dữ liệu một cách tuần tự.

Thách thức của thành phố:Giải quyết các vấn đề về CPU

Bên trong CPU:Cách các bóng bán dẫn xây dựng kiến trúc tập lệnh Ảnh của Peng LIU:https://www.pexels.com/photo/timelapse-photography-of-vehicle-on-concrete-road-near-in-high-rise-building-during-nighttime-169677/

CPU một lõi truyền thống xử lý dữ liệu một cách tuần tự, hết lệnh này đến lệnh khác. Điều này sẽ trở thành hạn chế nếu chúng ta có nhiều hướng dẫn cần xử lý.

Đây là những gì GPU (Bộ xử lý đồ họa) đã khắc phục. Nhờ GPU, chúng ta có thể xử lý các lệnh song song, từ đó giảm đáng kể thời gian tính toán.

Với những khả năng xử lý song song này, có thể đạt được tốc độ tính toán nhanh hơn nhiều và cải thiện hiệu quả trong nhiều ứng dụng.

Kết luận:Đơn vị điều khiển và bộ phận dữ liệu tốt hơn

Bên trong CPU:Cách các bóng bán dẫn xây dựng kiến trúc tập lệnh Ảnh của Miguel Á. Padriñán:https://www.pexels.com/photo/green- Circuit-board-343457/

Ngoài các CPU hiện đại là đa lõi, những tiến bộ trong bộ điều khiển và đường dẫn dữ liệu đóng vai trò quan trọng trong việc cải thiện hiệu suất của bộ xử lý.

Các bộ điều khiển thường được thiết kế bằng cách sử dụng các bộ điều khiển vi lập trình hoặc nối dây.

Lập trình vi mô mang lại sự linh hoạt cao hơn và cập nhật logic điều khiển dễ dàng hơn, trong khi các bộ điều khiển được nối dây cứng mang lại hiệu suất nhanh hơn bằng cách triển khai trực tiếp các tín hiệu điều khiển.

Một tiến bộ đáng kể khác là việc khám phá các vật liệu mới cho bóng bán dẫn trong cổng logic.

Thay vì chỉ dựa vào silicon, các nhà nghiên cứu đang nghiên cứu các vật liệu thay thế để tạo ra bộ xử lý nhanh hơn và hiệu quả hơn.

Khi công nghệ tiếp tục phát triển, việc hiểu rõ những khái niệm cơ bản này sẽ vẫn là điều cần thiết đối với cả những người đam mê và chuyên gia trong lĩnh vực này.

Việc theo kịp những bước phát triển này đảm bảo sự đổi mới và cải tiến liên tục về thiết kế và chức năng của CPU.

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu