Tìm Hiểu Về Cách Làm Việc Của CPU

Mỗi bộ vi xử lý đều có thiết cạnh bên trong rất riêng và khác nhau, nhưng chúng phải tuân theo cùng một nguyên tắc chung – đó chính là thứ mà chúng tôi muốn giới thiệu đến các bạn trong bài này. Chúng tôi sẽ giới thiệu kiến trúc CPU chung nhất để các bạn có thể biết thêm về các mặt hàng của Intel và AMD cũng như những khác nhau cơ bản giữa chúng.

CPU (Central Processing Unit) – cũng đã được coi là microprocessor hay processor – chịu trách nhiệm xử lý dữ liệu. Cách nó xử lý dữ liệu như làm sao sẽ lệ thuộc vào chương trình. Chương trình cũng đều có thể là một bảng tính, một trình giải quyết văn bản hay một game nào đó. Đối với CPU dù chương trình có là gì cũng không có nhiều khác biệt, vì nó không hiểu những gì chương trình sẽ thực hiện. Nó chỉ tuân theo các “yêu cầu – order” (được gọi là các chỉ lệnh hay các lệnh) có bên trong chương trình. Những đòi hỏi này còn cũng đều có thể là thêm 2 số hoặc gửi dữ liệu đến card video, v.v…

  • CPU là gì?

Khi bạn kích đúp vào một biểu trưng nào đó để chạy chương trình vậy đây là những gì sẽ xảy ra:

1. Chương trình đã lưu bên trong ổ đĩa cứng sẽ có dẫn vào bộ nhớ RAM. Ở đây chương trình chính là 1 loạt các chỉ lệnh đối với CPU.

2. CPU sử dụng mạch phần cứng được gọi là memory controller để tải dữ liệu chương trình từ bộ nhớ RAM.

3. Lúc đó dữ liệu bên trong CPU sẽ có xử lý.

4. Những gì xảy ra tiếp theo sẽ phụ thuộc vào chương trình vừa được nạp. CPU cũng đều có thể tiếp tục tải và thực thi chương trình hoặc có thể thực hành một công việc nào đó với dữ liệu đã được xử lý, như việc hiển thị kết quả thực hiện nào đó lên màn hình.

Cách dữ liệu đã lưu được chuyển vào CPU
Hình 1: Cách dữ liệu đã lưu được chuyển vào CPU

Trước đây, CPU điều khiển sự truyền đạt dữ liệu giữa ổ đĩa cứng và bộ nhớ RAM. Vì ổ đĩa cứng thường có vận tốc truy cập thấp hơn so với bộ nhớ RAM nên nó làm chậm cả hệ thống, bởi vì thế CPU sẽ cực kỳ bận cho đến khi tất cả dữ liệu đã được truyền tải từ ổ đĩa cứng vào bộ nhớ RAM. Phương pháp này được gọi là PIO, Processor I/O (hay Programmed I/O). Ngày nay, sự truyền tải dữ liệu giữa ổ đĩa cứng và bộ nhớ RAM được thi hành mà không sử dụng đến CPU, như vậy nó sẽ khiến cho hệ thống hoạt động nhanh hơn. Phương pháp này được gọi là bus mastering hay DMA (Direct Memory Access). Để đơn giản hóa hơn cho hình vẽ, chúng tôi không đưa vào chip cầu nối (được gọi là north bridge chip) giữa ổ đĩa cứng và bộ nhớ RAM trên hình 1, tuy vậy là có một chip đó tại vị trí nối này.

Các bộ vi giải quyết của AMD dựa theo sockets 754, 939 và 940 (Athlon 64, Athlon 64 X2, Athlon 64 FX, Opteron cùng một số mô hình Sempron) có 1 memory controller được nhúng bên trong. Điều đó có nghĩa rằng với những bộ vi xử lý này, CPU truy cập bộ nhớ RAM một cách trực tiếp mà không sử dụng north bridge chip như thể hiện trên hình 1.

Clock

Clock chính là một tín hiệu được sử dụng để đồng bộ hóa tất cả bên trong máy tính. Hãy xem trong hình 2, đây chính là một xung clock điển hình: nó là một xung hình vuông biến thiên ở mức “0” và “1” với một vận tốc được fix cố định. Trên hình vẽ bạn cũng có thể có thể thấy 3 chu kỳ của xung clock này. Bắt đầu của mỗi một chu kỳ là khi tín hiệu clock biến thiên từ “0” lên “1”; chúng mình đã đánh dấu nó bằng một mũi tên. Tín hiệu clock được đo theo đơn vị mang tên xem là Hertz (Hz), này là số chu kỳ clock trong mọi giây đồng hồ. Một xung clock 100MHz có tức là trong một giây đồng hồ có 100 triệu chu kỳ xung nhịp.


Hình 2: Tín hiệu xung clock

Trong máy tính, tất cả những bộ định thời đều được đo dưới dạng các chu kỳ clock. Ví dụ, một bộ nhớ RAM có tính trễ là “5” thì điều đó có tức là nó sẽ trì trệ 5 chu kỳ xung nhịp để bắt đầu việc phân phối dữ liệu. Trong CPU, tất cả các chỉ lệnh đều trì trệ một số chu kỳ xung clock nào đó để được thực thi. Ví dụ, một chỉ lệnh nào đó có thể được trì hoãn 7 chu kỳ xung clock để được thực thi xong.

Với CPU, điều thú vị là nó hiểu rằng bao nhiêu chu kỳ xung clock mà mỗi chỉ lệnh cần, nó hiểu rằng điều đó bởi nó giữ một bảng liệt kê các thông tin này. Chính vì thế nếu nó có hai chỉ lệnh được thực thi và nó hiểu được chỉ lệnh đầu tiên sẽ rất cần 7 chu kỳ xung clock để thực thi thì nó sẽ tự động thực thi chỉ lệnh kế tiếp vào chu kỳ clock thứ 8. Tất nhiên, này là cách lý giải chung cho CPU với một khối thực thi – các bộ vi giải quyết hiện đại có 1 số khối thực thi làm việc song song và nó cũng có thể thực thi chỉ lệnh thứ 2 tại cùng thời điểm với chỉ lệnh đầu. Điều này được xem là kiến trúc “superscalar”, chúng ta sẽ nói kỹ hơn về kiến trúc này ở các phần sau.

Vậy clock đã làm những gì với hiệu suất? Nếu nghĩ rằng clock và hiệu suất là cùng một thứ thì đó là suy nghĩ tận gốc sai về các bộ vi xử lý.

Nếu bạn đối chiếu hai CPU hoàn toàngiống nhau, CPU nào chạy ở vận tốc clock cao hơn sẽ nhanh hơn. Trong tình huống này, với một vận tốc clock cao hơn, thời gian giữa mỗi chu kỳ clock sẽ ngắn hơn, vì thế những công việc sẽ được thực thi tốn ít thời gian hơn và năng suất sẽ cao hơn. Tuy nhiên khi đối chiếu hai bộ vi xử lý khác nhau thì điều ấy tận gốc không đúng.

Nếu bạn lấy hai bộ vi giải quyết có kiến trúc khác nhau – ví dụ, không giống nhau về nhà cung cấp như Intel và AMD – những thứ bên trong hai CPU này là hoàn toàn khác nhau.

Như chúng mình đã đề cập, mỗi chỉ lệnh cần đến một số chu kỳ clock nhất định để được thực thi. Chúng ta hãy bảo rằng bộ vi giải quyết “A” cần đến 7 chu kỳ clock để thực thi một chỉ lệnh nào đó và bộ vi xử lý “B” cần 5 chu kỳ clock để thực hành một chỉ lệnh tương tự. Nếu chúng đang chạy với và một tốc độ clock thì bộ vi giải quyết “B” sẽ nhanh hơn, vì nó cũng có thể giải quyết chỉ lệnh này tốn ít thời gian hơn.

Với các CPU hiện đại, có nhiều vấn đề luôn phải coi xét đến năng suất này, vì các CPU có con số khối thực thi khác nhau, kích thước cache khác nhau, các cách truyền đạt dữ liệu bên trong CPU cũng khác nhau, cách giải quyết các chỉ lệnh bên trong các khối thực thi và tốc độ clock không giống nhau với ngoài nước thực bên ngoài,… Tuy nhiên bạn không cần phải lo lắng về điều đó, chúng tôi sẽ giới thiệu chúng trong bài này.

Khi tín hiệu clock của bộ vi xử lý cao quá sẽ xuất hiện một vấn đề. Bo mạch chủ, nơi mà bộ vi giải quyết được cài đặt không thể làm việc bằng phương pháp sử dụng cùng tín hiệu clock. Nếu xem bo mạch chủ, bạn sẽ thấy một số đường và rãnh. Các đường và rãnh này là những mạch in nối một số mạch của máy tính. Vấn đề ở này là với tốc độ clock cao, các dây mạch in này sẽ bắt đầu hoạt động như những chiếc ăng-ten, do đó, tín hiệu, thay vì đi tới vị trí cần đến ở phía cuối đầu dây lại biến mất, nó được truyền đi như các sóng vô tuyến.

Mạch in bên trên bo mạch chủ có thể làm việc như các ăng-ten
Hình 3: Mạch in bên trên bo mạch chủ có thể làm việc như các ăng-ten

External Clock

Vì vậy các nhà cung cấp CPU đã bắt đầu sử dụng một định nghĩa mới, định nghĩa được coi là nhân xung clock, phần mềm này bắt đầu được dùng trong bộ vi xử lý 486DX2. Với cơ chế này (được sử dụng trong mọi thứ các CPU ngày nay), CPU có 1 clock ngoài (external clock) được dùng khi truyền tải dữ liệu vào ra bộ nhớ RAM (sử dụng north bridge chip) và một clock trong cao hơn.

Để mang ra một tỉ dụ thực, trên Pentium 4 3.4 GHz thì số lượng “3.4 GHz” chính là clock trong của CPU, clock này đạt được bằng phương pháp nhân 17 với clock ngoài là 200 của nó. Mô phỏng ví dụ này trong hình 4.

Clock trong và ngoài trên Pentium 4 3.4 GHz.
Hình 4: Clock trong và ngoài trên Pentium 4 3.4 GHz.

Sự không giống nhau lớn giữa clock trong và clock ngoài trên các CPU hiện đại là cách băng qua yếu điểm từ tính như đã nói trên để tăng năng suất máy tính. Tiếp tục với thí dụ về Pentium 4 3.4 GHz ở trên, nó phải giảm vận tốc của nó đi 17 lần khi thực hành đọc dữ liệu từ bộ nhớ RAM! Trong suốt qui trình này, nó làm việc như 1 CPU với vận tốc 200MHz.

Một số kỹ thuật được sử dụng để ít nhất hóa ảnh hưởng của sự không giống nhau giữa các clock này. Một trong số chúng là sử dụng cache nhớ bên trong CPU. Phương pháp khác là truyền tải nhiều khối dữ liệu trên mỗi một chu kỳ clock. Các bộ vi giải quyết của hai hãng Intel và AMD đều sử dụng tính năng này, nhưng trong lúc CPU của AMD truyền đạt hai dữ liệu trên một chu kỳ clock thì những CPU của Intel truyền tải 4 dữ liệu trên mỗi chu kỳ.

Truyền tải nhiều dữ liệu trên mỗi chu kỳ clock
Hình 5: Truyền tải nhiều dữ liệu trên mỗi chu kỳ clock

Chính vì điều đó nên các CPU của AMD được liệt vào loại có tốc độ gấp hai clock external thực. Ví dụ, một CPU của AMD với external clock là 200MHz được liệt vào CPU có clock ngoài là 400MHz. Điều tựa như cũng đã được áp dụng đối với các CPU của Intel, với external clock là 200MHz thì CPU của nó sẽ được vận tốc clock ngoài là 800Mhz.

Kỹ thuật truyền đạt hai dữ liệu trên mỗi một chu kỳ clock được xem là DDR (Dual Data Rate), còn kỹ thuật truyền đạt 4 dữ liệu trên một chu kỳ clock được gọi là QDR (Quad Data Rate).

Video về cách CPU hoạt động

Bạn xem tạm bằng tiếng Anh nhé, có thời gian mình sẽ Việt sub ^^.

  • Tìm hiểu về cách làm việc của CPU (Phần II) 
  • Tìm hiểu về cách làm việc của CPU (Phần cuối)
  • Tìm hiểu cách làm việc của cục nhớ Cache

Sưu Tầm: Internet – Kênh Tin: TopVn

Công Ty Nạp Mực In HCM

Tel: 02873007898


Bài Viết Liên Quan


Công Ty Nạp Mực In HCM

Tel: 02873007898

Bài Viết Khác