Tính năng, kiến trúc và hoạt động của CPU

Tính năng

Bộ xử lý trung tâm (CPU) bao gồm các tính năng sau:

  • CPU được coi như bộ não của máy tính.
  • CPU thực hiện tất cả các loại hoạt động xử lý dữ liệu.
  • Nó lưu trữ dữ liệu, kết quả trung gian và hướng dẫn (chương trình).
  • Nó kiểm soát hoạt động của tất cả các bộ phận của máy tính.

 

     

Kiến trúc bên trong

Hình H.1 Kiến trúc của CPU

Bộ nhớ hoặc Bộ lưu trữ – Memory

Đơn vị này có thể lưu trữ hướng dẫn, dữ liệu và kết quả trung gian. Bộ phận này cung cấp thông tin cho các bộ phận khác của máy tính khi cần thiết. Nó còn được gọi là đơn vị lưu trữ nội bộ hoặc bộ nhớ chính hoặc bộ lưu trữ chính hoặc Bộ nhớ truy cập ngẫu nhiên (RAM).

Kích thước của nó ảnh hưởng đến tốc độ, sức mạnh và khả năng. Bộ nhớ chính và bộ nhớ phụ là hai loại bộ nhớ trong máy tính. Các chức năng của bộ nhớ là :

  • Nó lưu trữ tất cả dữ liệu và các hướng dẫn cần thiết để xử lý.
  • Nó lưu trữ các kết quả trung gian của quá trình xử lý.
  • Nó lưu trữ các kết quả cuối cùng của quá trình xử lý trước khi các kết quả này được đưa ra thiết bị đầu ra.
  • Tất cả các đầu vào và đầu ra được truyền qua bộ nhớ chính.

Đơn vị điều khiển – Control Unit (CU)

Bộ phận này kiểm soát hoạt động của tất cả các bộ phận của máy tính nhưng không thực hiện bất kỳ hoạt động xử lý dữ liệu thực tế nào.

Chức năng của đơn vị này là

  • Nó chịu trách nhiệm kiểm soát việc truyền dữ liệu và hướng dẫn giữa các đơn vị khác của máy tính.
  • Nó quản lý và điều phối tất cả các đơn vị của máy tính.
  • Nó nhận các hướng dẫn từ bộ nhớ, diễn giải chúng và chỉ đạo hoạt động của máy tính.
  • Nó giao tiếp với các thiết bị Đầu vào / Đầu ra để chuyển dữ liệu hoặc kết quả từ bộ lưu trữ.

Nó không xử lý hoặc lưu trữ dữ liệu.

Đơn vị logic số học – Arithmetic logic unit (ALU)

Đơn vị này bao gồm hai phần phụ :Phần số học, Phần logic

ALU là một mạch số trong bộ xử lý thực hiện các phép toán số học, các hoạt động logic. Các đầu vào của ALU là các dữ liệu được vận hành (được gọi là toán hạng), thông tin trạng thái từ các hoạt động trước đó và mã (opcode) từ đơn vị điều khiển chỉ ra hoạt động nào cần thực hiện. Tùy thuộc vào lệnh đang thực hiện, các toán hạng có thể đến từ thanh ghi nội hoặc bộ nhớ ngoại, hoặc có thể là hằng số được tạo ra bởi ALU. Hình H.2

Khi tất cả các tín hiệu ngõ vào đã được định vị và truyền qua mạch ALU, kết quả hoạt động được thực hiện sẽ xuất hiện ở các đầu ra của ALU. Kết quả bao gồm data work, có thể được lưu trữ trong thanh ghi hoặc bộ nhớ, và thông tin trạng thái thường được lưu trữ trong một thanh ghi CPU đặc biệt, dành riêng cho mục đích này.

Thanh ghi – Register

Thanh ghi là vị trí truy cập nhanh có sẵn trong CPU. Nó thường bao gồm một bộ nhớ có dung lượng nhỏ nhưng tốc độ truy cập cao, dùng để lưu trữ tạm thời các toán hạng, kết quả tính toán, địa chỉ ô nhớ và các thông tin điều khiển. Hình H.3

Đơn vị quản lý bộ nhớ – Memory management unit (MMU)

Đơn vị quản lý bộ nhớ của máy tính (MMU) là phần cứng vật lý xử lý các hoạt động bộ nhớ ảo và bộ nhớ đệm của nó. MMU thường nằm trong bộ xử lý trung tâm của máy tính (CPU), nhưng đôi khi hoạt động trong một chip (IC) tích hợp riêng biệt. Tất cả các đầu vào yêu cầu dữ liệu được gửi đến MMU, từ đó xác định xem dữ liệu cần được truy xuất từ ​​bộ nhớ RAM hay ROM. Hình H.4

Hầu hết các bộ vi xử lý cao cấp (trong máy tính để bàn, máy tính xách tay và máy tính) đều có đơn vị quản lý bộ nhớ, dịch các địa chỉ logic thành địa chỉ RAM vật lý, cung cấp khả năng bảo vệ bộ nhớ và khả năng phân trang, hữu ích cho bộ nhớ ảo. Bộ vi xử lý đơn giản, đặc biệt là vi điều khiển, thường không bao gồm MMU.

Vị trí của MMU và thông số của Clock Rate

Clock rate

Khi xem cấu hình máy tính, phần CPU thường có các thông số CPU 1.2 GHz, 2.2GHz,… đây chính là Clock rate. Hình H.5 ở trên

Hầu hết các CPU là mạch đồng bộ, nghĩa là sử dụng một tín hiệu xung clock để đồng bộ với hoạt động của nó. Tín hiệu xung clock được tạo ra bởi một mạch dao động bên ngoài, nó sẽ tạo ra một số xung nhất định mỗi giây theo dạng sóng vuông. Tần số xung clock xác định tốc độ CPU thực hiện các lệnh, do đó, tốc độ xung clock càng nhanh thì càng có nhiều lệnh mà CPU thực hiện mỗi giây.

Để đảm bảo hoạt động thích hợp của CPU, thời gian xung clock phải dài hơn thời gian tối đa cần cho tất cả các tín hiệu truyền đi qua CPU. Việc thiết lập thời gian xung clock cho một giá trị lớn hơn thời gian truyền tín hiệu trong trường hợp xấu nhất, có thể thiết kế toàn bộ CPU và cách nó di chuyển dữ liệu xung quanh cạnh của tín hiệu xung clock (cạnh lên hoặc xuống). Điều này có lợi thế là làm đơn giản hóa CPU đáng kể, từ góc độ thiết kế lẫn các thành phần. Tuy nhiên, nó cũng mang đến một bất lợi là CPU phải chờ đợi yếu tố chậm nhất của nó, mặc dù các thành phần khác nhanh hơn nhiều. Hạn chế này được bù đắp bằng các phương pháp tính toán song song của CPU.

Tuy nhiên, những cải tiến về kiến trúc không giải quyết được tất cả những hạn chế của việc đồng bộ toàn bộ CPU. Ví dụ, một tín hiệu xung clock là một sự chậm trễ của bất kỳ tín hiệu điện khác. Tốc độ xung clock ngày càng cao trong các CPU làm cho việc giữ tín hiệu đồng bộ trong toàn đơn vị trở nên khó khăn hơn. Điều này dẫn đến CPU hiện đại đòi hỏi nhiều tín hiệu xung clock được cung cấp để tránh trì hoãn bởi một tín hiệu duy nhất, đủ làm toàn bộ CPU hoạt động sai. Một vấn đề khác, khi tốc đọ xung clock tăng lên đáng kể thì lượng nhiệt phát ra bởi CPU cũng tăng lên. Tín hiệu xung clock liên tục thay đổi làm cho các thành phần của CPU cũng liên tục switch qua lại tại thời điểm đó, bất kể nó có được sử dụng hay không. Do đó, khi tốc độ xung clock tăng lên thì mức độ tiêu thụ năng lượng của CPU cũng tăng lên và nó cũng giải tỏa nhiều nhiệt hơn, đòi hỏi các biện pháp làm mát cho CPU.

Một phương pháp đối phó với việc chuyển đổi các thành phần không cần thiết là clock gating, bao gồm việc tắt tín hiệu xung clock cho các thành phần không cần thiết (vô hiệu hóa chúng một các hiệu quả). Tuy nhiên, điều này được xem là khó thực hiện và do đó nhìn chung thì chúng không được sử dụng trừ những thiết kế low-power. Một phương pháp giải quyết các vấn đề về xung clock là loại bỏ tất cả các tín hiệu xung clock hoàn toàn. Điều này làm cho quá trình thiết kế trở nên phức tạp hơn, nhưng chúng cũng mang lại những cải thiện rõ rệt về tiêu thụ điện năng và tản nhiệt so với các thiết kế đồng bộ tương tự.

Thay vì hoàn toàn loại bỏ tín hiệu xung clock, một số thiết kế CPU cho phép một số thành phần của thiết bị không đồng bộ, chẳng hạn như sử dụng ALU không đồng bộ với đường ống superscalar để đạt một số lợi thế về hiệu năng. Mặc dù chưa có số liệu thống kê rõ ràng nhưng các thiết kế không đồng bộ có thể thực hiện từ bằng đến tốt hơn so với các thiết kế đồng bộ, cùng với việc tiêu thụ điện năng tuyệt vời và tính tản nhiệt, làm cho chúng rất thích hợp với máy tính nhúng.

2.2.7. Integer range

32s

16s 8s 4s 2s

1s

1

0 1 0 0

0

Biểu diễn các nhị phân trong máy tính

Khi tiếp cận với CPU chúng ta thường thấy các thông số MCU 4/8/12/16/32/64bit có sự khác biệt như thế nào? Các con số 4/8/12/16/32/64 đó nói lên điều gì?

Mỗi CPU đều được biểu diễn các giá trị bằng một số cách cụ thể. Ví dụ, các máy tính kỹ thuật số ban đầu được biểu diễn bằng các giá trị thập phân (cơ số 10) quen thuộc, một số khác sử dụng cách biểu diễn khác như termary (cơ sở 3). Gần như tất cả các CPU hiện đại biểu diễn bằng các số trong giá trị nhị phân, với mỗi chữ số là bội số của 2. Ví dụ như 4, 8, 12, 16, 32, 64, thậm chí 128,..

Các con số này nói lên kích thước và độ chính xác của số nguyên mà một CPU có thể biểu diễn. Trong trường hợp của một CPU nhị phân, nó được đo bằng số bit mà CPU có thể xử lý trong một thao tác, chúng thường được gọi là “word size”, “bit width”, “data path width”, “integer precision”, “integer size”. Chúng xác định phạm vi giá trị của các số nguyên mà nó có thể tác động trực tiếp. Ví dụ, một CPU 8-bit, có thể trực tiếp thao tác với các số nguyên được biểu diễn bởi 8-bit, nghĩa là 256 (28) giá trị rời rạc.

Ngoài ra, “word size” cũng ảnh hưởng đến số vị trí bộ nhớ mà CPU có thể trực tiếp định địa địa chỉ (một địa chỉ là một số nguyên đại diện cho một vị trí bộ nhớ cụ thể). Ví dụ, một CPU nhị phân sử dụng 32 bit để đại diện cho một địa chỉ bộ nhớ thì nó có thể trực tiếp giải quyết 2^32 địa chỉ bộ nhớ. Để phá vỡ các giới hạn này và vi nhiều lý do khác nhau, một số CPU sử dụng các cơ chế (bank switch) cho phép bổ sung bộ nhớ.

Các CPU có “word size” lớn hơn đòi hỏi nhiều mạch hơn và do đó có kích thước lớn hơn, chi phí nhiều hơn, và cũng tiêu tốn nhiều điện hơn (và do đó tạo ra nhiều nhiệt hơn). Kết quả là các bộ vi điều khiển 4 hoặc 8 bit thường được sử dụng trong các ứng dụng hiện đại, mặc dù các CPU có “word size” lớn hơn (như 16, 32, 64 hay thậm chí 128) đều có sẵn. Tuy nhiên, khi hệ thống cần một hiệu suất lớn hơn, thì người ta có thể bỏ qua những bất lợi đó để sử dụng các CPU có “word size” lớn hơn.

Để đạt một số lợi thế do cả độ dài bit thấp hơn và cao hơn, nhiều bộ chỉ lệnh có độ rộng bit khác nhau cho dữ liệu số nguyên và số thực, cho phép các CPU thực hiện các lệnh đó có “data path width” khác nhau cho các thành phần khác nhau của thiết bị. Ví dụ, tập lệnh IBM System / 360 chủ yếu là 32 bit, nhưng hỗ trợ các giá trị số thực 64 bit để tạo sự chính xác và phạm vi lớn hơn trong số thực. Nhiều thiết kế CPU sau đó sử dụng chiều rộng bit hỗn hợp, nơi cần có sự cân bằng hợp lý cho cả số nguyên lẫn số thực.