CHƢƠNG 2 : BỘ XỬ LÝ
3. Tổ chức bộ xử lý trung tâm CPU
3.1. Đƣờng đi dữ liệu
Phần đƣờng đi dữ liệu gồm có bộ phận làm tính và luận lý (ALU: Arithmetic and Logic Unit), các mạch dịch, các thanh ghi và các đƣờng nối kết các bộ phận
trên. Phần này chứa hầu hết các trạng thái của bộ xử lý. Ngoài các thanh ghi tổng quát, phần đƣờng đi dữ liệu còn chứa thanh ghi đếm chƣơng trình (PC: Program Counter), thanh ghi trạng thái (SR: Status Register), thanh ghi đệm TEMP (Temporary), các thanh ghi địa chỉ bộ nhớ (MAR: Memory Address Register), thanh ghi số liệu bộ nhớ (MBR: Memory Buffer Register), bộ đa hợp (MUX: Multiplexor), đây là điểm cuối của các kênh dữ liệu - CPU và bộ nhớ, với nhiệm vụ lập thời biểu truy cập bộ nhớ từ CPU và các kênh dữ liệu, hệ thống bus nguồn (S1, S2) và bus kết quả (Dest).
Nhiệm vụ chính của phần đƣờng đi dữ liệu là đọc các toán hạng từ các thanh ghi tổng quát, thực hiện các phép tính trên tốn hạng này trong bộ làm tính và luận lý ALU và lƣu trữ kết quả trong các thanh ghi tổng quát. Ở ngã vào và ngã ra các thanh ghi tổng quát có các mạch chốt A, B, C. Thông thƣờng, số lƣợng các thanh ghi tổng quát là 32.
Phần đƣờng đi của dữ liệu chiếm phân nửa diện tích của bộ xử lý nhƣng là phần dễ thiết kế và cài đặt trong bộ xử lý.
3.2. Các yếu tố tác động đến hiệu suất của CPU
Độ rộng Bus dữ liệu và Bus địa chỉ (Data Bus và Add Bus)
Độ rộng Bus dữ liệu là nói tới số lƣợng đƣờng truyền dữ liệu bên trong và bên ngồi CPU.
Nhƣ ví dụ hình dƣới đây thì CPU có 12 đƣờng truyền dữ liệu (ta gọi độ rộng Data Bus là 12 bit), hiện nay trong các CPU từ Pentium 2 đến Pentium 4 đều có độ rộng Data Bus là 64 bit.
Hình 2.5. Bus dữ liệu CPU có 12 đường truyền gọi là Data Bus có 12 bỉt
Tƣơng tự nhƣ vậy thì độ rộng Bus địa chỉ (Add Bus) cũng là số đƣờng dây truyền các thông tin về địa chỉ. Địa chỉ ở đây có thể là các địa chỉ của bộ nhớ RAM, địa chỉ các cổng vào ra và các thiết bị ngoại vi ... để có thể gửi hoặc nhận dữ liệu từ các thiết bị này thì CPU phải có địa chỉ của nó và địa chỉ này đƣợc truyền đi qua các Bus địa chỉ. Giả sử: Nếu số đƣờng địa chỉ là 8 đƣờng thì CPU sẽ quản lý đƣợc 28
= 256 địa chỉ. Hiện nay trong các CPU Pentium 4 có 64 bít địa chỉ và nhƣ vậy chúng quản lý đƣợc 264
địa chỉ nhớ.
Tốc độ xử lý và tốc độ Bus (tốc độ dữ liệu ra vào chân) còn gọi là FSB
Tốc độ xử lý của CPU (Speed): Là tốc độ chạy bên trong của CPU, tốc độ này đƣợc tính bằng MHz hoặc GHz. z Thí dụ một CPU Pentium 3 có tốc độ 800MHz tức là nó dao động ở tần số 800.000.000 Hz, CPU pentium 4 có tốc độ là 2,4GHz tức là nó dao động ở tần số 2.400.000.000 Hz.
Tốc độ Bus của CPU (FSB): Là tốc độ dữ liệu ra vào các chân của CPU - còn gọi là Bus phía trƣớc: Front Side Bus (FSB). Thơng thƣờng tốc độ xử lý của CPU thƣờng nhanh gấp nhiều lần tốc độ Bus của nó, dƣới đây là thí dụ minh hoạ về hai tốc độ này (lƣu ý từ Core i7 trở đi Intel khơng cịn đặt là FSB nữa mà gọi là QPI). Hiện nay với CPU Dual Core thì có FSB từ 800MHz (E1xxx, E2xxx, E5xxx) đến 1066MHZ (E6300), Core 2 Duo từ 1066MHz đến 1333MHz, Core 2 Quad từ 1066MHz đến 1600MHz.
Hình 2.6. Minh họa về tốc độ xử lý và tốc độ bus (FSB) của CPU
Dung lƣợng bộ nhớ đệm Cache
Bộ nhớ Cache là bộ nhớ nằm bên trong của CPU, nó có tốc độ truy cập dữ liệu theo kịp tốc độ xử lý của CPU, điều này khiến cho CPU trong lúc xử lý không phải chờ dữ liệu từ RAM vì dữ liệu từ RAM phải đi qua Bus của hệ thống nên mất nhiều thời gian.
Độ rộng Bus dữ liệu và Bus địa chỉ (Data Bus và Add Bus):
Hình 2.7. Bộ nhớ Cache
Một dữ liệu trƣớc khi đƣợc xử lý, thông qua các lệnh gợi ý của ngơn ngữ lập trình, dữ liệu đƣợc nạp sẵn lên bộ nhớ Cache, vì vậy khi xử lý đến, CPU không mất thời gian chờ đợi.
Khi xử lý xong trong lúc đƣờng truyền cịn bận thì CPU lại đƣa tạm kết quả vào bộ nhớ Cache, nhƣ vậy CPU không mất thời gian chờ đƣờng truyền đƣợc giải phóng.
Bộ nhớ Cache là giải pháp làm cho CPU có điều kiện hoạt động thƣờng xuyên mà khơng phải ngắt qng chờ dữ liệu, vì vậy nhờ có bộ nhớ Cache mà hiệu quả xử lý tăng lên rất nhiều, tuy nhiên bộ nhớ Cache đƣợc làm bằng Ram tĩnh do vậy giá thành của chúng rất cao. Hiện nay bộ nhớ Cache của các dòng CPU Intel thƣờng từ 2MB trở lên
CPU hoạt động hoàn toàn phụ thuộc vào các mã lệnh, mã lệnh là tín hiệu số dạng 0, 1 đƣợc dịch ra từ các câu lệnh lập trình, nhƣ vậy CPU sẽ khơng làm gì cả nếu khơng có các câu lệnh hƣớng dẫn.
Khi chúng ta chạy một chƣơng trình thì các chỉ lệnh của chƣơng trình đó đƣợc nạp lên bộ nhớ RAM, các chỉ lệnh này đã đƣợc dịch thành ngôn ngữ máy và thƣờng trú trên các ngăn nhớ của Ram ở dạng 0, 1.
CPU sẽ đọc và làm theo các chỉ lệnh một cách lần lƣợt. Trong quá trình đọc và thực hiện các chỉ lệnh, các bộ giải mã sẽ giải mã các chỉ lệnh này thành các tín hiệu điều khiển
3.4. Phân loại CPU
Công nghệ CPU đơn lõi: từ Pentium đến Pentium 4
Công nghệ siêu phân luồng: Pentium D
Công nghệ đa lõi: Duo Core, Core 2 Dual, Core Quad
So sánh giữa các công nghệ
Công nghệ lõi kép và tiếp theo là công nghệ đa lõi (multi-core) là tƣơng lai của công nghệ vi xử lý. Ở đây chúng ta sẽ cùng nhau tìm hiểu về cơng nghệ này trên chip Intel.
Vào năm 2002, Intel đã giới thiệu các CPU có tích hợp cơng nghệ Hyper Threading (Công nghệ Siêu phân luồng). Công nghệ này đã đƣợc cải tiến hơn so với cơng nghệ cũ nhƣ sau:
Hình 2.8a. Ngun lý hoạt động bộ xử lý đơn luồng
Hình 2.8b. Nguyên lý hoạt động bộ xử lý siêu phân luồng
Mỗi ứng dụng trên máy tính khi thực hiện sẽ chạy nhiều tiến trình, mỗi
một thời điểm chỉ có một luồng xử lý đƣợc thực hiện, nếu có nhiều luồng cùng muốn thực hiện thì các luồng này thực hiện tuần tự cái sau tiếp nối cái trƣớc.
Với bộ xử lý siêu phân luồng, nó có thể thực hiện song song 2 luồng xử lý, tận dụng tối đa tài nguyên hệ thống và rút ngắn thời gian xử lý.
Theo sự phát triển, các phần mềm hay các hệ điều hành mới yêu cầu tốc độ mà mỗi vi xử lý thực hiện các lệnh ngày càng cao, các CPU tăng tốc độ xung nhịp với phƣơng pháp chủ yếu là đƣa ngày càng nhiều mạch bán dẫn vào một bộ chip, điều này sẽ khiến cho CPU phát sinh nhiều nhiệt và một số thí nghiệm đã cho thấy CPU sẽ khơng cịn hoạt động hiệu quả nữa.
Công nghệ lõi kép sẽ giải quyết vấn đề trên, nó cho phép một bộ xử lý có thể chứa 2 lõi hoặc nhiều hơn. Các lõi này sẽ hoạt động song song với nhau, chia sẻ cơng việc tính tốn xử lý mà bộ xử lý phải đảm nhận.
Hình 2.9. Nguyên lý hoạt động bộ xử lý siêu phân luồng
Việc có hai lõi hoặc nhiều hơn sẽ giúp bộ xử lý hoạt động hiệu quả và có cơng suất cao hơn, vì mỗi lõi sẽ xử lý ít ứng dụng hơn, giảm hiện tƣợng bộ xử lý phải cùng một lúc gánh vác công việc của nhiều ứng dụng.
Và tiếp theo là sự kết hợp giữa công nghệ lõi kép và công nghệ siêu phân luồng để đạt đƣợc 4 luồng xử lý thực hiện song song. Cho tốc độ xử lý nhanh gấp nhiều lần mà không cần tăng tốc độ xung nhịp.
Hình 2.10. Nguyên lý hoạt động bộ xử lý lõi kép và siêu phân luồng