HỆ TH Ố NG MÁY TÍNH
Các thành ph ần cơ bả n c ủ a máy tính
1.1.1 Mô hình cơ bản của máy tính
1.1.2 Bộ vi xử lý trung tâm - CPU
Ho ạt động cơ bả n c ủ a máy tính
LIÊN K Ế T H Ệ TH Ố NG
Chương 1: HỆ THỐNG MÁY TÍNH 1.1 Các thành phần cơ bản của máy tính
1.1.1 Mô hình cơ bản của máy tính
Chức năng của máy tính
Xử lý dữ liệu là chức năng quan trọng nhất của máy tính, cho phép xử lý nhiều dạng dữ liệu khác nhau với các yêu cầu xử lý đa dạng.
Dữ liệu được nhập vào máy tính có thể được xử lý ngay lập tức hoặc lưu trữ trong bộ nhớ Khi cần thiết, dữ liệu này sẽ được truy xuất để tiếp tục xử lý.
Trao đổi dữ liệu là quá trình quan trọng giữa các thành phần bên trong và bên ngoài máy tính, bao gồm quá trình vào ra (input-output) Các thiết bị vào-ra đóng vai trò là nguồn cung cấp dữ liệu hoặc nơi tiếp nhận dữ liệu Khi dữ liệu được vận chuyển qua khoảng cách xa, nó được gọi là truyền dữ liệu (data communication).
- Điều khiển: Máy tính cần phải điều khiển ba chức năng trên.
Cấu trúc cơ bản của máy tính
- Bộ xử lý trung tâm - CPU (Central Processor Unit): Điều khiển các hoạt động của máy tính và thực hiện xử lý dữ liệu.
- Hệ thống nhớ: Lưu trữ chương trình và dữ liệu
- Hệ thống vào ra (Input-Output System): Trao đổi thông tin giữa máy tính và thế giới bên ngoài.
- Hệ thống BUS: Kết nối và vận chuyển thông tin giữa CPU, bộ nhớ chính và hệ thống vào ra của máy tính với nhau.
1.1.2 Bộ vi xử lý trung tâm - CPU
- Điều khiển hoạt động của toàn bộ hệ thống máy tính
Nguyên tắc hoạt động: CPU hoạt động theo chương trình nằm trong bộ nhớ chính, bằng cách:
- Nhận lệnh từ bộ nhớ chính
- Giải mã lệnh và phát các tín hiệu điều khiển thực thi lệnh
- CPU có thể trao đổi dữ liệu với bộ nhớ chính hay hệ thống vào-ra
Các thành phần cơ bản:
- Đơn vị điều khiển (Control Unit- CU): điều khiển hoạt động của máy tính theo chương trình đã định sẵn.
- Đơn vị số học và logic (Arithmetic and Logic Unit- ALU): thực hiện các phép toán số học và phép toán logic
- Tập thanh ghi (Register File- RF): lưu giữ các thông tin tạm thời phục vụ cho hoạt động của CPU
- Đơn vị nối ghép bus (Bus Interface Unit-BIU) kết nối và trao đổi thông tin giữa bus bên trong (internal bus) và bus bên ngoài (external bus)
Tốc độ của bộ xử lý:
- Số lệnh được thực hiện trong 1 giây, MIPS (Million of Instructions per Second)
- Khó đánh giá chính xác (còn phụ thuộc bộ nhớ, bo mạch đồ họa…).
Tần số xung nhịp của bộ xử lý:
- Bộ xử lý hoạt động theo một xung nhịp (Clock) có tần số xác định.
- Tốc độ của bộ xử lý được đánh giá gián tiếp thông qua tần số của xung nhịp.
Mỗi thao tác của bộ xử lý mất một số nguyên lần chu kỳ T0 => T0 càng nhỏ thì bộ xử lý chạy càng nhanh.
Tần số xung nhịp: f0 = 1/T 0 gọi là tần số làm việc của CPU.
Ví dụ: Máy tính dùng bộ xử lý Intel Pentium IV 2 GHz
Ta có: f0 = 2 GHz = 2 x 10 9 Hz -> T0 = 1/f0 = 1/(2x10 9 ) = 0,5 ns
Chức năng: Lưu trữ chương trình và dữ liệu.
Các thao tác cơ bản với bộ nhớ: Thao tác ghi (Write) và thao tác đọc (Read).
Các thành phần chính của bộ nhớ:
- Bộ nhớ trong (Internal Memory)
- Bộ nhớ ngoài (External Memory)
Chức năng và đặc điểm:
- Chứa các thông tin mà CPU có thể trao đổi trực tiếp
- Sử dụng bộ nhớ bán dẫn: ROM và RAM
Các loại bộ nhớ trong:
- Bộ nhớ chính (Main Memory)
- Bộ nhớ cache (bộ nhớ đệm)
Bộ nhớ chính (Main Memory)
- Là thành phần nhớ tồn tại trên mọi hệ thống máy tính.
- Chứa các chương trình và dữ liệu đang được CPU sử dụng.
- Tổ chức thành các ngăn nhớ được đánh địa chỉ.
- Ngăn nhớ thường được tổ chức theo Byte.
- Nội dung của ngăn nhớ có thể thay đổi, song địa chỉ vật lý của ngăn nhớ luôn cố định.
- Thông thường, bộ nhớ chính gồm 2 phần: RAM và ROM
ROM (Bộ nhớ chỉ đọc) lưu trữ các chương trình không bị xóa khi mất nguồn điện Công nghệ FlashROM hiện đại cho phép ROM không chỉ đọc mà còn ghi lại, dẫn đến sự phát triển của Flash BIOS Trong khi đó, RAM (Bộ nhớ truy cập ngẫu nhiên) có tốc độ truy cập nhanh và lưu trữ dữ liệu tạm thời, nhưng dữ liệu này sẽ bị mất vĩnh viễn khi không còn nguồn điện.
Bộ nhớ cache (bộ nhớ đệm)
- Bộ nhớ có tốc độ nhanh được đặt đệm giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy cập bộ nhớ.
- Dung lượng nhỏ hơn bộ nhớ chính Tốc độ nhanh hơn.
- Cache thường được chia thành một số mức: Cache L1, L2, L3
- Cache có thể được tích hợp trên cùng chip bộ xử lý
- Cache có thể có hoặc không.
Chức năng và đặc điểm:
- Lưu giữ tài nguyên phần mềm của máy tính, bao gồm: Hệ điều hành, các chương trình và dữ liệu.
- Bộ nhớ ngoài được kết nối với hệ thống dưới dạng các thiết bị vào ra
Các loại bộ nhớ ngoài:
- Bộ nhớ từ: Đĩa cứng, đĩa mềm
- Bộ nhớ quang: Đĩa CD, DVD,…
- Bộ nhớ bán dẫn: Thẻ nhớ, USB flash.
Chức năng: Trao đổi thông tin giữa máy tính với thế giới bên ngoài
Các thao tác cơ bản: Vào dữ liệu (Input), Ra dữ liệu (Output)
- Các thiết bị ngoại vi (Peripheral Devices)
- Các mô-đun vào-ra (IO Modules)
Cấu trúc cơ bản của hệ thống vào-ra
Các thiết bị ngoại vi
Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính.
Các loại thiết bị ngoại vi cơ bản:
- Thiết bị vào: bàn phím, chuột, máy quét
- Thiết bị ra: màn hình, máy in
- Thiết bị nhớ: các ổ đĩa
- Thiết bị truyền thông: MODEM
Các mô-đun vào-ra
- Chức năng: nối ghép các thiết bị ngoại vi với máy tính
- Mỗi mô-đun vào-ra có một hoặc một vài cổng vào-ra (I/O Port)
- Mỗi cổng vào-ra được đánh một địa chỉ xác định
- Các thiết bị ngoại vi được kết nối và trao đổi dữ liệu với máy tính thông qua các cổng vào-ra
Hệ thống BUS (Bus system) làm nhiệm vụ vận chuyển thông tin giữa các phần khác nhau trong máy tính
Hệ thống Bus bao gồm:
- Bus dữ liệu dùng để vận chuyển dữ liệu từ bộ nhớ tới CPUhoặc ngược lại.
- Bus địa chỉ dùng để vận chuyển tín hiệu địa chỉ (ô nhớ hay cổng vào/ra do CPU phát ra)
Bus điều khiển là thành phần quan trọng trong hệ thống máy tính, chịu trách nhiệm vận chuyển tín hiệu điều khiển từ CPU đến các khối khác trong hệ thống Ngoài ra, bus này cũng nhận tín hiệu từ thiết bị ngoại vi gửi đến CPU để yêu cầu thực hiện các tác vụ nhất định.
1.2 Hoạt động cơ bản của máy tính
Là hoạt động cơ bản của Máy tính Máy tính lặp đi lặp lại quá trình thực hiện lệnh gồm hai bước cơ bản:
- Gặp tình huống không giải quyết được(lỗi)
Mỗi chu kỳ lệnh bắt đầu khi CPU lấy lệnh từ bộ nhớ chính Trong quá trình này, có hai thanh ghi quan trọng bên trong CPU mà chúng ta cần chú ý.
PC (Program Counter) và thanh ghi IR (Instruction Register)
- CPU lấy lệnh từ ngăn nhớ được trỏ bởi thanh ghi PC đưa vào thanh ghi lệnh IR lưu giữ
- Sau mỗi lệnh được nhận thì nội dung của thanh ghi PC tự động tăng để trỏ tới lệnh kế tiếp sẽ được thực hiện.
- Bộ xử lý giải mã lệnh đã được nhận và phát tín hiệu điều khiển thực hiện thao tác mà lệnh yêu cầu thông qua khối điều khiển CU
- Thực hiện trao đổi giữa CPU và bộ nhớ chính.
- Thực hiện trao đổi giữa CPU và mô-đun I/O.
- Xử lý dữ liệu thực hiện các phép toán số học và logic.
- Kết hợp các thao tác trên
Một số ví dụ về quá trình thực hiện lệnh, với giả thiết cấu trúc lệnh có dạng như sau:
Ngắt là cơ chế cho phép CPU tạm dừng chương trình hiện tại để chuyển sang thực hiện một chương trình khác, được gọi là chương trình con phục vụ ngắt.
- Ngắt do lỗi thực hiện chương trình, ví dụ: tràn số, chia cho 0
- Ngắt do lỗi phần cứng, ví dụ: lỗi bộ nhớ RAM
- Ngắt do mô-đun vào-ra phát ra tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu.
Hoạt động của ngắt : Sau khi hoàn thành một lệnh, bộ xử lý kiểm tra tín hiệu ngắt.
- Nếu không có ngắt thì bộ xử lý tiếp tục nhận lệnh tiếp theo.
- Nếu có tín hiệu ngắt:
+ Tạm dừng chương trình đang thực hiện Cất ngữ cảnh (thông tin có liên quan đến chương trình đang thực hiện).
+ Thiết lập bộ đếm chương trình PC trỏ đến chương trình con phục vụ ngắt.
+ Thực hiện chương trình con phục vụ ngắt.
+ Cuối chương trình con phục vụ ngắt Khôi phục lại ngữ cảnh và tiếp tục chương trình đang bị tạm dừng.
1.3.1.1 Các luồng thông tin trong máy tính
Một máy tính bao gồm một tập hợp các thành phần hay mô-đun thuộc 3 kiểu cơ bản:
Trong thực tế, máy tính được xem như một mạng gồm nhiều thành phần cơ bản
Do đó, để máy tính hoạt động được cần phải có các đường dẫn kết nối các mô-đun lại với nhau. a) Kết nối mô - đun nhớ:
- Địa chỉ đưa đến để xác định ngăn nhớ
- Dữ liệu được đưa đến khi ghi
- Dữ liệu hoặc lệnh được đưa ra khi đọc (lưu ý: bộ nhớ không phân biệt lệnh và dữ liệu).
- Nhận các tín hiệu điều khiển: Điều khiển đọc (Read), điều khiển ghi (Write). b) Kết nối mô - đun vào -ra:
- Địa chỉ đưa đến để xác định cổng vào-ra
+ Nhận dữ liệu từ CPU hoặc bộ nhớ chính
+ Đưa dữ liệu ra thiết bị ngoại vi
+ Nhận dữ liệu từ thiết bị ngoại vi
+ Đưa dữ liệu vào CPU hoặc bộ nhớ chính
- Nhận các tín hiệu điều khiển từ CPU
- Phát các tín hiệu điều khiển đến thiết bị ngoại vi
- Phát các tín hiệu ngắt đến CPU c) Kết nối CPU:
- Phát địa chỉ đến các mô-đun nhớ hay các mô-đun vào-ra
- Đọc lệnh và dữ liệu
- Đưa dữ liệu ra (sau khi xử lý)
- Phát tín hiệu điều khiển đến các mô-đun nhớ và các mô-đun vào-ra
- Nhận các tín hiệu ngắt
1.3.1.2 Cấu trúc Bus cơ bản
Chức năng vận chuyển thông tin giữa các thành phần trong máy tính, như thông tin từ CPU tới bộ nhớ, từ CPU tới bộ điều khiển vào ra I/O.
- Khái niệm BUS: Bus là tập hợp các đường kết nối dùng để vận chuyển thông tin giữa các mô-đun của máy tính với nhau.
- Độ rộng của BUS: Là số đường dây của Bus có thể truyền các bit thông tin đồng thời (chỉ dùng cho bus địa chỉ và bus dữ liệu).
- Phân loại BUS: Theo chức năng ta chia bus ra làm 3 loại là BUS địa chỉ, BUS dữ liệu và BUS điều khiển.
Chức năng của BUS là vận chuyển địa chỉ từ CPU đến các mô-đun nhớ hoặc mô-đun vào ra, giúp xác định ngăn nhớ hoặc cổng vào ra cần truy xuất để trao đổi thông tin Đây là một loại BUS hoạt động theo hướng một chiều.
Độ rộng của bus địa chỉ (A0, A1,…, An-1) xác định khả năng quản lý tối đa số lượng ngăn nhớ mà hệ thống có thể xử lý Cụ thể, nếu sử dụng độ rộng bus địa chỉ n đường, thì dung lượng tối đa mà bộ nhớ có thể quản lý sẽ là 2^n ngăn nhớ, tương đương với 2^n Byte nhớ, giả sử mỗi ngăn nhớ có dung lượng 1 Byte.
- Chức năng: Vận chuyển lệnh từ bộ nhớ đến CPU, vận chuyển dữ liệu giữa CPU, mô-đun nhớ, mô-đun vào-ra với nhau.
- Độ rộng của Bus dữ liệu (D0, D1, ….Dm-1) Cho biết số bit dữ liệu có thể được trao đổi đồng thời, m=8, 16, 32, 64, 128 bit. c) BUS điều khiển:
Tập hợp các tín hiệu điều khiển gồm có:
- Các tín hiệu phát ra từ CPU để điều khiển mô-đun nhớ và mô-đun vào ra.
- Các tín hiệu từ mô-đun nhớ, mô-đun vào ra gửi đến CPU yêu cầu.
- Ngoài ra còn là BUS cung cấp nguồn tín hiệu xung nhịp (clock) với các BUS đồng bộ.
Một số tín hiệu điều khiển điển hình:
- Memory Read (MEMR): điều khiển đọc dữ liệu từ một ngăn nhớ có địa chỉ xác định lên bus dữ liệu.
- Memory Write (MEMW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu đến một ngăn nhớ có địa chỉ xác định.
- I/O Read (IOR): điều khiển đọc dữ liệu từ một cổng vào-ra có địa chỉ xác định lên bus dữ liệu.
- I/O Write (IOW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu ra một cổng có địa chỉ xác định
- Interupt Request (INTR): Tín hiệu phát ra từ thiết bị gửi đến CPU yêu cầu ngắt
- Interupt Acknowledge (INTA): Tín hiệu phát ra từ CPU báo hiệu với thiết bị rằng CPU cho phép ngắt
- Non – Maskable Interupt (NMI): Thường dùng để báo sự cố của máy tính
- Reset: Tín hiệu gửi đến CPU yêu cầu khởi động lại máy tính d) Các yếu tố trong thiết kế BUS:
Có 2 kiểu Bus tổng quát là Bus dành riêng và Bus dồn kênh.
Bus dành riêng sử dụng các đường truyền dữ liệu và địa chỉ chuyên dụng, tạo ra sự chuyên biệt hóa về chức năng Ưu điểm của loại bus này là khả năng điều khiển đơn giản, nhưng nhược điểm là cần nhiều đường kết nối, dẫn đến gia tăng kích thước và chi phí cho hệ thống.
+ Bus dồn kênh: dùng chung các đường truyền địa chỉ và dữ liệu Lợi ích của
Bus dồn kênh là phương pháp tối ưu hóa việc sử dụng đường dữ liệu, giúp tiết kiệm không gian và chi phí Tuy nhiên, nhược điểm của nó là yêu cầu nhiều mạch điện tử phức tạp và có thể dẫn đến giảm hiệu suất.
Trong hệ thống máy tính, có nhiều mô-đun điều khiển Bus như CPU và DMA controller Tuy nhiên, tại mỗi thời điểm, chỉ có một mô-đun duy nhất có thể kiểm soát bus, do đó cần phải có cơ chế phân xử bus hiệu quả.
Sự phân xử bus có thể là tập trung hoặc phân tán
Phân xử tập trung trong hệ thống máy tính được thực hiện bởi một thiết bị phần cứng gọi là Bộ điều khiển bus (Bus controller) hoặc Trọng tài Bus (Arbiter) Thiết bị này có vai trò điều khiển sự truy cập vào bus và có thể được tích hợp trực tiếp trên CPU hoặc được thiết kế tách biệt.
Phân xử phân tán cho phép mỗi mô-đun điều khiển bus, trong khi vẫn duy trì sự điều khiển logic trên tất cả các mô-đun Một số bus điển hình trong máy tính bao gồm bus dữ liệu, bus địa chỉ và bus điều khiển, mỗi loại bus đóng vai trò quan trọng trong việc truyền tải thông tin và điều phối hoạt động giữa các thành phần của hệ thống.
- Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ nhanh nhất
- Bus của bộ nhớ chính (nối ghép với các mô-đun RAM)
- PCI bus(Peripheral Component Interconnect): nối ghép với các thiết bị ngoại vi có tốc độ trao đổi dữ liệu nhanh.
- IDE (Integrated Device Electronics): Bus kết nối với ổ đĩa cứng hoặc ổ đĩa CD, DVD
- USB (Universal Serial Bus): Bus nối tiếp đa năng.
Trong một hệ thống máy tính, có khoảng 10 thiết bị khác nhau như CPU, RAM, Card Video, Card Sound, Card LAN, HDD, CDROM, FDD, Keyboard và Mouse, mỗi thiết bị hoạt động với tần số khác nhau Chẳng hạn, tần số của CPU là 800MHz, trong khi RAM là 400MHz và Card Sound chỉ đạt 66MHz Thêm vào đó, số đường mạch (số BUS) giữa các thiết bị cũng khác nhau, điều này khiến cho chúng không thể kết nối trực tiếp với nhau Tuy nhiên, việc này vẫn có thể thực hiện được nhờ vào các giao thức và bộ điều khiển giúp đồng bộ hóa hoạt động của các thiết bị trong hệ thống.
BỘ VI X Ử LÝ TRUNG TÂM
C ấ u trúc c ủ a CPU
Sau khi học xong bài này người học có khả năng
- Mô tả đúng cấu trúc cơ bản của một CPU, cấu trúc CPU Dual Core của hãng AMD và Intel
- Trình bày được một số ưu điểm vượt trội của công nghệ Dual Core.
Nhận diện được CPU Dual Core của hãng AMD và Intel.
Có ý thức giữ gìn CPU khi sử dụng Linh hoạt trong việc vận dụng kiến thức đã học vào thực tế.
2.1.1 Cấu trúc cơ bản của một CPU
2.1.1.1.Khối điều khiển CU – Control Unit a) Chức năng
- Nhận lệnh từ bộ nhớđưa vào thanh ghi lệnh IP
- Tăng nội dung thanh ghi PC mỗi khi nhận lệnh xong
- Giải mã lệnh và xác định thao tác mà lệnh yêu cầu
- Phát ra tín hiệu điều khiển thực thi lệnh
- Nhận các tín hiệu yêu cầu từ BUS hệ thống và giải quyết đáp ứng yêu cầu đó
27 b) Các thông tin kết nối đến CU
- Clock: tín hiệu xung nhịp từ mạch tạo dao động
- Mã lệnh từ thanh ghi lệnh đưa đến CU giải mã
- Các trạng thái cờ đưa đến cho biết trạng thái của CPU cũng như trạng thái thực hiện các phép toán trong ALU
- Các tín hiệu điều khiển từBUS điều khiển
- Các tín hiệu điều khiển bên trong CPU: điều khiển thanh ghi, ALU
- Các tín hiệu điều khiển bên ngoài CPU đó là Bộ nhớ hay cổng vào ra
2.1.1.2.Khối Logic toán học ALU
Chức năng: Thực các phép toán số học và logic
- Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo,
- Logic: AND, OR,XOR, NOT, dịch bit,…
- Mô hình kết nối của ALU
2.1.1.3.Tập các thanh ghi a) Chức năng:
- Thực chất là vùng nhớ được CPU nhận biết qua tên thanh ghi và có tốc độ truy xuất cực nhanh
- Chứa thông tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPU
- Sốlượng thanh ghi tuỳ thuộc vào bộ vi xử lý cụ thể -> tăng hiệu năng CPU
- Thanh ghi chia 2 loại: Loại lập trình được và loại không lập trình được
Dưới đây là tập các thanh ghi đa năng ở các thế hệ vi xử lý từ 8bit – 64bit: c) Phân loại thanh ghi theo chức năng
- Thanh ghi địa chỉ: Thanh ghi được sử dụng để quản lý địa chỉ của ngăn nhớ hay cổng vào ra
- Thanh ghi dữ liệu: Thanh ghi dùng để lưu trữ dữ liệu tạm thời
- Thanh ghi đa năng: Thanh ghi có thể chứa dữ liệu hoặc địa chỉđều được
- Thanh ghi điều khiển/trạng thái: Thanh ghi chứa thông tin về trạng tháiCPU
- Thanh ghi lệnh: thanh ghi chứa lệnh đang được thực hiện
2.1.2 Cấu trúc CPU Dual Core
2.1.2.1.Cấu trúc chung của một CPU dual core của AMD
Hình 2.1 Dual Core của AMD
Thế hệ CPU hiện nay tích hợp 2 nhân trên một chip duy nhất, giữ nguyên kích thước và số chân, nhưng tốc độ thực thi đã tăng gần gấp đôi Tuy nhiên, kiến trúc này vẫn tồn tại nhược điểm khi mỗi nhân có một bộ nhớ cache riêng, dẫn đến hiệu suất sử dụng cache không cao, vì có thể một nhân thiếu cache trong khi nhân kia không sử dụng hết bộ nhớ cache của mình.
2.1.2.2.Cấu trúc CPU dual core của Intel
Hình 2.2 Smart Cache trong Chip Dual core của Intel
Kiến trúc mới sử dụng công nghệ chia sẻ thông minh cache L2, cho phép hai core cùng sử dụng cache L2 với tổng dung lượng 4MB, thay vì mỗi nhân có cache L2 riêng 2MB như thế hệ Dual Core trước Việc chia sẻ cache L2 giúp tăng băng thông cho từng nhân và cấp phát một cách năng động dựa trên khối lượng công việc Nhờ đó, khả năng truy cập dữ liệu từ cache L2 của mỗi nhân được tối ưu hóa, giảm thời gian trễ cho dữ liệu thường xuyên sử dụng và nâng cao hiệu quả tính toán.
2.1.2.3.Một số ưu điểm vượt trội của công nghệ dual core
1) Tăng tốc độ tính toán song song bằng kỹ thuật siêu phân luồng (Hình 2.3)
2) Tăng tốc độ thực thi chương trình bằng bằng công nghệ chia sẻ với Cache lớn hơn (Hình 2.4)
3) Tăng tốc độ xử lý các gói Media (Video, ảnh, …) 128bit/lần (Hình 2.5)
4) Tiết kiệm năng lượng tối đa: Chỉ cấp nguồn cho core nào đang hoặt động.
Hình 2.3 Siêu phân luồng với đa nhân
Hinh 2.4 Chia sẻ Cache thông minh
Hình 2.5 Tăng tốc độ xử lý media
T ậ p l ệ nh
2.2.1 Giới thiệu về tập lệnh
Tập lệnh là ngôn ngữ duy nhất mà CPU có thể hiểu và thực hiện Mọi chương trình trên máy tính đều là sự kết hợp của các lệnh, được sắp xếp theo cách nhất định để thực hiện các nhiệm vụ cụ thể Tương tự như việc sử dụng búa, cưa, gỗ và đinh, qua các quy trình khác nhau, ta có thể tạo ra các sản phẩm như bàn, ghế và tủ.
Một lệnh máy thường có 2 phần:
- Mã thao tác (Operation Code: Opcode): Mã chỉ ra thao tác mà bộ vi xử lý cần phải thực hiện.
- Địa chỉ toán hạng (Operand Address): Chỉ ra nơi chứa các toán hạng mà mã thao tác sẽ tác động:
Toán hạng nguồn: dữ liệu vào của thao tác
Toán hạng đích: dữ liệu ra của thao tác
2.2.2 Một số nhóm lệnh cơ bản
- Thao tác chuyển dữ liệu
- Thao tác xử lý số học và logic
- Thao tác vào ra dữ liệu qua cổng
- Thao tác điều khiển rẽ nhánh
- Thao tác điều khiển hệ thống
- Thao tác xử lý số dấu chấm động
- Thao tác chuyên dụng khác: xử lý ảnh, âm thanh, tiếng nói,…
2.2.2.2 Các lệnh chuyển dữ liệu
- Lệnh Mov: Sao chép dữ liệu từ toán hạng nguồn -> đích
Cú pháp: Mov đích, nguồn
- Lệnh Load: Nạp dữ liệu từ bộ nhớ -> bộ xử lý
- Lệnh XCHG: Trao đổi nội dung của hai toán hạng cho nhau
Cú pháp: XCHG toán_hạng, toán_hạng
- Lệnh PUSP: Cất nội dung của một toán hạng nguồn vào stack
- Lệnh POP: Lấy nội dung ở đỉnh Stack ra toán hạng đích
Ví dụ: MOV AX, Var 1 // sao chép dữ liệu từ biến Var 1 tới thanh ghi AX
MOV Var 2, AX // sao chép dữ liệu từ thanh ghi AX vào biến Var 2
Cú pháp: In đích, địa_chỉ_cổng_nguồn
Cú pháp: Out địa_chỉ_cổng_đích, nguồn
Ví dụ: MOV DX, 278 h // sao chép dữ liệu từ 278 h tới thanh ghi DX
2.2.2.4 Các lệnh chuyển điều khiển
- Lệnh Jump: Nhẩy đến vị trí bất kỳ trong chương trình
- Lệnh Call: Gọi chương trình con
Cú pháp: Call Tên_chương_trình_con
- Lệnh Return : trở về từ chương trình con
2.2.2.5 Các lệnh điều khiển hệ thống
- Lệnh Halt : dừng thực hiện chương trình
- Lệnh Wait : tạm dừng thực hiện chương trình, lặp kiểm tra cho đến khi thoả mãn thì tiếp tục thực hiện.
- No Operation: không thực hiện gì cả
- Lệnh Lock : Cấm không cho chuyển nhượng BUS
- Lệnh Unlock: cho phép chuyển nhượng BUS
2.2.3 Các phương pháp xác định địa chỉ toán hạng
Mỗi lệnh trong lập trình đều có trường toán hạng, và khi sử dụng các ngôn ngữ lập trình bậc cao, có nhiều phương pháp để gán giá trị cho biến.
X = 15 // gán tức thì gia trị 15 cho X
X = y // Gán giá trị cho X thông qua y
X = mang[i] // gán giá trị cho X bằng địa chỉ tương đối qua biến
Cách thức để tìm được giá trị và truyền cho X gọi là các cách xác định địa chỉ, có 7 cách xác định địa chỉ chính như sau:
2.2.3.1 Chế độ địa chỉ thanh ghi
Sử dụng thanh ghi làm các toán hạng để chứa dữ liệu cần thao tác giúp tăng tốc độ thực hiện lệnh, vì CPU không phải mất thời gian tìm kiếm dữ liệu.
Ví dụ: MOV AL, BL ; AL:= BL
MOV DS, BX ; DS:= BX ADD AL, DL ; AL:= AL + DL
2.2.3.2 Chế độ địa chỉ tức thì
Toán hạng đích là thanh ghi, hoặc ô nhớ Toán hạng nguồn là 1 giá trị cụ thể (hằng số).
Ví dụ: MOV AL, 0Dh ; AL:h
Lệnh này thường được dùng để nạp dữ liệu cần thao tác vào thanh ghi nào đó.
2.2.3.3 Chế độ địa chỉ trực tiếp
Một toán hạng là địa chỉ offset của ô nhớ chứa giá trị cần thao tác Toán hạng kia là thanh ghi (không được là ô nhớ).
MOV AL, [04FCh] ;đưa vào thanh ghi AL nội dung ô nhớ có địa chỉ logic DS:04FCh
2.2.3.4 Chếđộ địa chỉ gián tiếp qua thanh ghi
Một toán hạng là thanh ghi lưu trữ địa chỉ offset của ô nhớ chứa giá trị cần thao tác, trong khi toán hạng còn lại là thanh ghi và không được là ô nhớ.
MOV [BX], AL ; Đưa nội dung thanh ghi AL vào ngăn nhớ có địa chỉ offset nằm trong thanh ghi BX
2.2.3.5 Chế độ địa chỉ tương đối cơ sở
Thanh ghi BX, BP và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ trong DS, SS chứa giá trị cần thao tác.
Ví dụ: Lệnh MOV [BX + N], CL sử dụng để chuyển dữ liệu từ thanh ghi CL vào ô nhớ tại địa chỉ offset BX + N (DS:BX + N) Tương tự, lệnh MOV AL, [BP + N] sẽ lấy dữ liệu từ ô nhớ tại địa chỉ offset BP + N và lưu vào thanh ghi AL (SS:BP + N).
2.2.3.6 Chế độ địa chỉ tương đối chỉ số
Thanh ghi DI, SI và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ chứa giá trị trong DS cần thao tác.
MOV [SI + N], AH ; Đưa nội dung thanh ghi AH vào ngăn nhớ có địa chỉ offset tại SI + N (DS:SI + N).
MOV CL, [DI + N] ; Đưa nội dung ngăn nhớ có địa chỉ offset tại DI + N (DS:DI +
2.2.3.7 Chế độ địa chỉ tương đối chỉ số cơ sở
Chế độ địa chỉ hỗn hợp kết hợp cả thanh ghi cơ sở và thanh ghi chỉ số để xác định địa chỉ toán hạng.
MOV [BX + SI + N], AX ; Đưa nội dung thanh ghi AX vào ngăn nhớ có địa chỉ offset tại BX + SI + N (DS:BX + SI + N)
MOV CL, [BP + DI + N] ; Đưa nội dung ngăn nhớ có địa chỉ offset tại BP + DI + N
(DS:BP + DI + N) vào thanh ghi CL.
Ho ạt độ ng c ủ a CPU
Khi bạn kích đúp vào một biểu tượng nào đó để chạy chương trình thì những gì sẽ xảy ra là:
Chương trình lưu trữ trên ổ cứng, USB hoặc CDROM sẽ được chuyển vào bộ nhớ RAM, nơi nó trở thành một chuỗi các chỉ lệnh cho CPU thực hiện.
- 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 vào CPU
- Lúc đó dữ liệu bên trong CPU sẽ được xử lý
Những gì xảy ra tiếp theo phụ thuộc vào chương trình đã được nạp vào CPU CPU có thể tiếp tục tải và thực thi chương trình hoặc thực hiện các tác vụ với dữ liệu đã xử lý, chẳng hạn như hiển thị kết quả lên màn hình.
Quy trình chương trình được lưu đưa vào CPU
2.3.2 Tải dữ liệu giữa bộ nhớ ngoài và RAM
Trước đây, CPU đảm nhiệm việc điều khiển trực tiếp quá trình vận chuyển dữ liệu giữa bộ nhớ ngoài và RAM, nhưng do tốc độ truy cập của bộ nhớ ngoài thường thấp hơn RAM, điều này đã làm chậm quá trình thực thi chương trình Hệ thống trở nên kém hiệu quả khi CPU phải tốn thời gian vào việc tải dữ liệu giữa hai loại bộ nhớ Phương pháp này được biết đến với tên gọi PIO, hay Processor I/O (Programmed I/O).
Hiện nay, việc truyền tải dữ liệu giữa bộ nhớ ngoài và RAM không cần sự can thiệp trực tiếp của CPU, giúp hệ thống hoạt động nhanh hơn và giải phóng CPU để thực hiện các tác vụ khác Phương pháp này được gọi là bus mastering hay DMA (Direct Memory Access), là giải pháp tối ưu cho việc vận chuyển dữ liệu.
Các bộ vi xử lý của AMD dựa trên sockets 754, 939 và 940 (Athlon 64, Athlon
Các dòng vi xử lý như 64 X2, Athlon 64 FX, Opteron và một số mẫu Sempron được trang bị đơn vị điều khiển bộ nhớ tích hợp Điều này cho phép cải thiện hiệu suất và giảm độ trễ trong việc truy cập bộ nhớ.
38 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 chíp bắc cầu Bắc (north bridge chip).
2.3.3 Giải mã và thực thi lệnh
Khối tìm nạp (CU) có trách nhiệm nạp lệnh từ bộ nhớ cho CPU Đầu tiên, nó kiểm tra xem lệnh cần thiết có trong bộ nhớ Cache L1 hay không Nếu không có, nó sẽ tìm kiếm trong bộ nhớ Cache L2 Nếu lệnh vẫn không được tìm thấy, khối tìm nạp sẽ nạp trực tiếp từ bộ nhớ RAM.
Khi khởi động máy tính, tất cả các Cache đều trống Tuy nhiên, khi hệ thống bắt đầu nạp hệ điều hành, CPU sẽ xử lý các lệnh đầu tiên từ ổ cứng, và cache controller sẽ nạp lệnh vào Cache để tăng tốc độ xử lý.
Sau khi khối tìm nạp đã có được lệnh cần thiết cho CPU để được xử lý, nó gửi lệnh này đến khối giải mã
Khối giải mã sẽ phân tích lệnh và xác định các nhiệm vụ cần thực hiện Sau khi hoàn tất việc dịch lệnh và thu thập dữ liệu cần thiết, khối này sẽ gửi toàn bộ thông tin cùng với MicroCode của lệnh đến khối thực thi.
Khối thực thi trong CPU hiện đại thực hiện lệnh một cách hiệu quả, với nhiều khối thực thi hoạt động song song để nâng cao hiệu suất Ví dụ, một CPU có 6 khối thực thi có khả năng thực hiện đến 6 lệnh đồng thời, cho phép đạt được hiệu suất tương đương với 6 bộ vi xử lý chỉ có một khối thực thi.
Ki ế n trúc Intel
Bộ vi xử lý 8088/8086 thực hiện chương trình thông qua ba thao tác chính: lấy lệnh (fetch), giải mã lệnh (decode) và thực hiện (execute).
Sơ đồ khối của bộ vi xử lý 8088/8086 gồm 2 đơn vị chính(Hình 30):
- EU (Execution Unit): Đơn vị (khối) thực hiện lệnh
- BIU (Bus Interface Unit): Đơn vị giao tiếp bus (khối tương thích bus) để điều khiển bus hiệu quả hơn
2.4.1.1 Khối thực hiện lệnh EU Đơn vị EU của 8088 và 8086 giống nhau, bao gồm ALU, thanh ghi cờ, các thanh ghi đệm và các thanh ghi đa năng Các bus dữ liệu bên trong của EU đều là 16 bit EU không kết nối trực tiếp với bên ngoài, nó nhận lệnh từ hàng đợi lệnh bên trong BUI.Nếu là lệnh cần truy nhập bộ nhớ hoặc cổng vào/ra (I/O port - thiết bị ngoại vi) thì EU yêu cầu BIU lấy hoặc gửi dữ liệu Tất cả các địa chỉ mà EU thao tác đều là 16 bit, khi gửi sang BIU thì BIU sẽ thực hiện tính toán để tạo địa chỉ vật lý 20 bit và phát ra các chân địa chỉ của chip. a Các thanh ghi của EU
Có 8 thanh ghi, là thành phần nhớ có tốc độ truy nhập rất cao Bao gồm các thành ghi đa năng Ax, Bx, Cx, Dx Mỗi thanh ghi 16 bit có thể được phân chia thành 2 thanh ghi 8 bit làm việc độc lập nhau.
AX (Accumulator, Acc) là thanh chứa dữ liệu tạm thời, bao gồm các toán hạng và kết quả của các phép toán như nhân, chia AX có khả năng được phân chia thành các phần khác nhau để phục vụ cho các phép tính phức tạp hơn.
AH (Phần cao) và AL (Phần thấp).
BX (Base) là thanh ghi cơ sở, thường được sử dụng để lưu trữ địa chỉ cần truy cập trong lệnh XLAT Thanh ghi BX có thể được chia thành hai phần: BH (Phần cao) và BL (Phần thấp).
CX (Count) là bộ đếm dùng để theo dõi số lần lặp của công việc trong các vòng lặp Bộ đếm này được chia thành hai phần: CH (Phần cao) và CL (Phần thấp) CX thường được sử dụng để lưu trữ số lần lặp trong các lệnh LOOP.
CL thường chứa số lần dịch hoặc quay trong các lệnh dịch quay thanh ghi
- DX (Data): Thanh ghi đữ liệu, sử dụng để chứa toán hạng, kết quả DX cùng
AX là thanh ghi dùng để lưu trữ toán hạng hoặc kết quả của các phép nhân và chia số 16 bit Trong khi đó, DX chứa địa chỉ cổng cho các lệnh vào ra trực tiếp như IN và OUT, và có thể được chia thành hai phần: DH (phần cao) và DL (phần thấp).
Các thanh ghi SP, BP là các thanh ghi con trỏ không tách rời.
Thanh ghi con trỏ ngăn xếp (SP) là thành phần quan trọng trong quản lý ngăn xếp, luôn trỏ vào đỉnh hiện tại của ngăn xếp trong đoạn ngăn xếp SS Địa chỉ logic của nó được xác định bởi SS:SP Khi thực hiện thao tác cất một từ vào ngăn xếp (Push), giá trị của SP sẽ tự động giảm 2 đơn vị, trong khi thao tác lấy một từ ra khỏi ngăn xếp (Pop) sẽ làm tăng giá trị của SP.
SP được tự động tăng 2 đơn vị.
- BP (Base stack Pointer): Con trỏ cơ sở, luôn trỏ vào một dữ liệu cụ thể nằm trong đoạn ngăn xếp SS Ta có địa chỉ logic SS: BP.
- SI (Source Index): Thanh ghi chỉ số nguồn (hay nguồn), chỉ vào dữ liệu nằm trong đoạn DS Ta có địa chỉ logic DS: SI.
- DI (Destination Index): Thanh ghi chỉ số đích, chỉ dữ liệu trong đoạn DS Ta có địa chỉ logic DS: DI. c Khối ALU
Làm nhiệm vụ thực hiện các lệnh số học và logic.
- Số học: +, -, *, /, so sánh, đảo dấu.
Logic bao gồm các phép toán NOT, AND, OR và XOR Thanh ghi cờ là một thanh ghi 16 bit, trong đó mỗi bit thể hiện một trạng thái của bộ vi xử lý tại một thời điểm nhất định trong quá trình thực hiện chương trình Tuy nhiên, bộ vi xử lý 8088/8086 chỉ sử dụng 9 bit Mỗi bit được gọi là một cờ (flag) và giá trị của từng cờ được biểu diễn bằng các ký hiệu dễ nhớ, tương tự như cách biểu diễn trong chương trình Debug của DOS.
- CF (Carry Flag): Cờ nhớ (cờ tràn).
CF = 1 (Carry Flag) khi kết quả phép toán vượt quá khả năng biểu diễn, dẫn đến việc nhớ (mượn) lên từ bit cao nhất (MSB) Ngược lại, CF = 0 (No Carry) khi kết quả nằm trong giới hạn biểu diễn.
Cờ này thường được sử dụng khi thực hiện các phép cộng, trừ các số nhiều byte.
- PF (Parity Flag): Cờ chẵn lẻ.
PF = 1 (PE - Parity Even) khi số bit 1 trong kết quả phép toán hoặc các phép vận chuyển dữ liệu là chẵn, trong khi PF = 0 (PO - Parity Old) được áp dụng khi số bit 1 là lẻ.
- AF (Carry Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ).
Cờ AF (Auxiliary Carry) có ý nghĩa quan trọng trong việc làm việc với số BCD Cụ thể, AF = 1 khi có hiện tượng nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4 bit cao), trong khi AF = 0 thể hiện trường hợp không có nhớ hoặc mượn (NA - No Auxiliary carry).
- SF (Sign Flag): Cờ dấu
Trong bộ vi xử lý 8088/8086, các số âm được biểu diễn dưới dạng số bù 2, do đó cần sử dụng cờ SF để chỉ thị dấu của kết quả Cụ thể, khi SF = 1 (NG - NeGative) nghĩa là kết quả phép toán là một số âm, trong khi SF = 0 (PL - PLus) cho biết kết quả là một số dương.
- ZF (Zero Flag): Cờ rỗng.
OF (Overflow Flag) bằng 1 khi kết quả là số bù 2 vượt quá giới hạn biểu diễn, tức là khi cộng hai số cùng dấu mà kết quả lại có dấu trái ngược Ngược lại, OF bằng 0 khi không xảy ra tràn số học, tức là trong trường hợp hai số cùng dấu cho kết quả cũng cùng dấu Cờ này hoạt động với các số có dấu.
Cờ trạng thái phụ thuộc kết quả phép toán, còn với cờ điều khiển ta có thể thiết lập nhờ lệnh.
- IF (Interrupt Flag): Cờ ngắt.
IF = 1 (EI-Enable Interrup), CPU cho phép ngắt, IF = 0 (DI-Disable Interrup) CPU không cho phép ngắt (cấm) các loại ngắt che được (Maskable).
- TF (Trap Flag): Cờ bẫy.
TF là một CPU hoạt động theo chế độ thực thi từng lệnh, thường được sử dụng để gỡ rối chương trình (debug) Sau khi hoàn thành mỗi lệnh, bộ vi xử lý sẽ phát sinh một lệnh ngắt (INT) để kiểm tra chương trình.
C ấ u trúc chung c ủ a các b ộ x ử lý tiên ti ế n
2.5.1 Các đơn vị xử lý dữ liệu
Các đơn vị số nguyên
Các đơn vị số dấu phẩy động
Các đơn vị chức năng đặc biệt:
- Đơn vị xử lý dữ liệu âm thanh
- Đơn vị xử lý dữ liệu hình ảnh
- Đơn vị xử lý dữ liệu vector
Sơ đồ cấu trúc chung của các bộ xử lý tiên tiến
2.5.2 Bộ nhớ cache Được tích hợp trên chip vi xử lý
Bao gồm hai mức cache:
- Cache L1 gồm hai phần tách rời:
Nhằm giải quyết xung đột khi nhận lệnh và dữ liệu
- Cache L2: chung cho lệnh và dữ liệu
2.5.3 Đơn vị quản lý bộ nhớ
Chuyển đổi địa chỉ ảo thành địa chỉ vật lý
Cung cấp cơ chế phân trang/phân đoạn
Cung cấp chế độ bảo vệ bộ nhớ
B ộ x ử lý đa lõi
Tuần tự: Các lệnh được xử lý tuần tự
Pipeline (đường ống): Chia chu trình lệnh thành các công đoạn và cho phép thực hiện gối lên nhau (như dây chuyền lắp ráp)
Máy tính siêu vô hướng bậc n có khả năng thực hiện đồng thời n lệnh trong mỗi chu kỳ xung nhịp Tc, cho phép tăng cường hiệu suất xử lý Ngoài ra, công nghệ đa luồng giúp CPU xử lý nhiều luồng dữ liệu cùng lúc, nâng cao khả năng xử lý đa nhiệm Hơn nữa, CPU đa lõi với nhiều lõi (Core) cung cấp khả năng tính toán mạnh mẽ và hiệu quả hơn.
2.6.2 Các dạng tổ chức bộ xử lý đa lõi
Mỗi CPU Core được trang bị Cache L1 và Cache L2 chuyên dụng, trong khi Cache L2 và Cache L3 được chia sẻ giữa các CPU Core Cache L2 phục vụ cho việc chia sẻ tài nguyên, còn Cache L3 là bộ nhớ chung cho toàn bộ các CPU Core, tối ưu hóa hiệu suất xử lý.
Tại diễn đàn IDF đầu năm 2006, Intel giới thiệu kiến trúc Intel Core Duo.
Intel Core Duo có Hai nhân (core) x86 với công nghệ Siêu vô hướng (superscalar), có chia sẻ dùng chung L2 cache với dung lượng 2MB L2 cache.
Mỗi Core có Cache L1 được dành riêng chuyên dụng với 32KB cho lệnh và 32KB cho dữ liệu.
2.6.4 Kiến trúc Intel đa lõi x86 - Core i7 Được Intel giới thiệu tháng 11/2008, có 4 lõi x86 SMT.
Dành riêng L2 cache, có sự chia sẻ chung L3 cache.
Dự đoán trước khi lấy lệnh vào cache.
Trên một chíp điều khiển bộ nhớ RAM DDR3 có: 3 kênh 8 byte (192 bit) đạt tốc độ 32GB/s, không có Font side bus
Hỗ trợ kết nối QuickPath Interconnection
- Hỗ trợ kết nối cache chặt chẽ kiểu point-to-point
- Kết nối tốc độ cao giữa các core trên chip.
- Tốc độ đạt 6.4G transfers /s, với 16 bit / transfer
- Hỗ trợ cặp 2 chiều chuyên dụng
- Tổng băng thông đạt 25.6 GB/s
HỆ TH Ố NG NH Ớ
T ổ ng quan v ề h ệ th ố ng nh ớ
3.1.1 Tìm hiểu các loại bộ nhớ
Bộ nhớ trong hệ thống máy tính cần được xem xét từ hai khía cạnh: logic (hoạt động) và vật lý (cấu tạo) Đầu tiên, chúng ta cần hiểu rõ bộ nhớ là gì, vị trí của nó trong hệ thống và cách thức hoạt động Tiếp theo, chúng ta sẽ tìm hiểu về các loại bộ nhớ, tốc độ, hình dạng và các mô-đun nhớ có thể được cài đặt.
Bộ nhớ (memory) là không gian làm việc quan trọng của bộ vi xử lý, nơi lưu trữ tạm thời các chương trình và dữ liệu đang được xử lý Dữ liệu trong bộ nhớ chỉ tồn tại khi máy hoạt động và sẽ mất đi khi máy khởi động lại hoặc tắt nguồn Do đó, việc lưu trữ dữ liệu đã thay đổi trước khi tắt máy là rất cần thiết.
53 được ghi vào các thiết bị lưu trữ lâu dài – storage – (thường là ổ đĩa cứng) để sau này có thể nạp lại vào bộ nhớ.
Nhiều người mới sử dụng máy tính thường dễ nhầm lẫn giữa bộ nhớ và đĩa lưu trữ do cả hai đều sử dụng các đơn vị đo lường như byte, kilobyte, megabyte và gigabyte.
Khi một file được nạp vào bộ nhớ, nó chỉ là bản sao tạm thời, trong khi file gốc vẫn tồn tại trên ổ đĩa Do tính chất tạm thời của bộ nhớ, bất kỳ thay đổi nào đối với file cần được ghi lại vào đĩa cứng trước khi tắt máy, vì dữ liệu trong bộ nhớ sẽ bị xóa khi máy tính tắt.
Bộ nhớ lưu trữ các chương trình và dữ liệu đang chạy, nhưng được gọi là lưu trữ không ổn định (volatile storage) vì thông tin trong RAM sẽ bị mất khi tắt máy hoặc gặp sự cố về nguồn điện Do tính chất này, người dùng thường có thói quen ghi lại dữ liệu thường xuyên, và nhiều ứng dụng còn có tính năng tự động ghi theo thời gian đã định.
Các đặc trưng của bộ nhớ
+ Bên trong CPU: Tập các thanh ghi (register), cache
+ Bộ nhớ trong: Bộ nhớ chính (Main memmory – RAM, ROM)
+ Bộ nhớ ngoài: Các thiết bị nhớ, RAID (HDD, CD-Rom, …)
+ Độ dài từ nhớ (tính bằng bit) –Kích thước trên một đơn vị lưu trữ
+ Số lượng từ nhớ - Dung lượng bộ nhớ
+ Từ nhớ - Truyền tuần tự từng Word
+ Khối nhớ - Truyền một khối gồn n Word
+ Truy nhập tuần tự (băng từ) – Để đến được điểm n đầu từ phải duyệt qua n-1 vị trí trước
+ Truy nhập trực tiếp (các loại đĩa) – Đầu từ di chuyển trực tiếp đến vị trí cần đọc.
+ Truy nhập ngẫu nhiên (bộ nhớ bán dẫn) – ô nhớ cần đọc sẻ được giả mã để lấy thông tin ngay lập tức.
+ Truy nhập liên kết (cache) – Truy cập thông qua ban sao của ô nhớ cần đọc
+ Chu kỳ truy xuất bộ nhớ
- Kiểu bộ nhớ vật lý:
+ Bộ nhớ bán dẫn –Lưu trữ bằng điện
+ Bộ nhớ từ - Lưu trữ dùng từ tính
+ Bộ nhớ quang – Lưu trữ sử dụng công nghệ Laze
- Các đặc tính vật lý:
+ Khả biến/không khả biến
+ Xoá được/không xoá được
3.1.2 Mô hình phân cấp bộ nhớ
Việc trao đổi dữ liệu giữa CPU và bộ nhớ là một thao tác quan trọng, ảnh hưởng lớn đến hiệu suất của hệ thống vi xử lý và máy tính Bộ nhớ chính và bộ nhớ ngoài thường có tốc độ trao đổi dữ liệu chậm hơn so với tốc độ làm việc của CPU, dẫn đến sự chênh lệch trong hiệu suất Để cải thiện tốc độ xử lý dữ liệu, cần nâng cao tốc độ trao đổi dữ liệu giữa bộ vi xử lý và bộ nhớ ngoài Dựa trên nguyên lý cục bộ về không gian và thời gian, hệ thống nhớ 5 cấp đã được xây dựng nhằm tối ưu hóa quá trình này.
0 : Tập các thanh ghi nằm trong bộ vi xử lý
Thanh ghi là bộ nhớ kiểu
SRAM là loại bộ nhớ có tốc độ trao đổi dữ liệu nhanh nhất trong hệ thống nhờ vị trí gần ALU và CU, nhưng lại có dung lượng nhỏ Việc tác động nhanh và thông tin ổn định là những đặc điểm nổi bật của SRAM.
- Cấp 1 : Primary cache (cache sơ cấp) : Là bộ nhớ có tốc độ trao đổi dữ liệu
Bộ nhớ cache là một loại bộ nhớ nhanh, có dung lượng nhỏ hơn thanh ghi và thường được tích hợp trong bộ vi xử lý, mặc dù cũng có thể nằm ngoài Trong các bộ vi xử lý hiện đại, bộ nhớ cache thường được chia thành hai phần để giảm xung đột trong xử lý song song, bao gồm Icache dành cho lệnh.
Dcache : dành cho dữ liệu.
Bộ nhớ cache thứ cấp (Secondary cache) là loại bộ nhớ cache nằm ngoài bộ vi xử lý, và chỉ tồn tại khi có bộ nhớ cache chính (Primary cache) Dung lượng của cache thứ cấp thường lớn hơn cache chính nhưng nhỏ hơn bộ nhớ chính.
Bộ nhớ chính (Cấp 3) là nơi lưu trữ chương trình và dữ liệu đang được xử lý, được bộ vi xử lý truy cập và quản lý thông qua địa chỉ trực tiếp Để tăng tốc độ hoạt động của hệ thống, một phần của chương trình đang thi hành có thể được lưu trữ trong bộ nhớ cache, bao gồm cả lệnh và dữ liệu.
Dung lượng của bộ nhớ chính thường vượt trội hơn nhiều so với bộ nhớ cache Trong các hệ thống máy tính hiện đại, bộ nhớ chính chủ yếu được sử dụng là DRAM.
Bộ nhớ thứ cấp, hay còn gọi là bộ nhớ ngoài, có dung lượng lớn nhưng tốc độ trao đổi dữ liệu chậm Nó được sử dụng để lưu trữ lâu dài chương trình và dữ liệu, cho phép nhiều người sử dụng cùng truy cập mà không mất thông tin khi mất nguồn điện Các thiết bị đại diện cho bộ nhớ thứ cấp bao gồm ổ đĩa cứng, ổ đĩa mềm, CD ROM, CD-WOM, CD WR và băng từ.
B ộ nh ớ bán d ẫ n
3.2.1 Bộ nhớ ROM Ðây là loại bộ nhớ dùng trong các hãng sãn xuất là chủ yếu Nó có đặc tính là thông tin lưu trữ trong ROM không thể xoá được và không sửa được, thông tin sẽ được lưu trữ mãi mãi Nhưng ngược lại ROM có bất lợi là một khi đã cài đặt thông tin vào rồi thì ROM sẽ không còn tính đa dụng Ví dụ điển hình là các con "chip" trên motherboard hay là BIOS ROM để vận hành khi máy tính vừa khởi động.
EPROM là loại bộ nhớ cho phép ghi dữ liệu bằng điện và có khả năng xóa Nó sử dụng transistor FAMOST (Floating gate avalanche injection MOS transistor), có cấu trúc tương tự như FET nhưng thêm một cực nổi (floating gate) Khi cực nổi không có điện tích, transistor hoạt động như FET thông thường, với cực Gate có điện áp dương dẫn đến mức logic 1 Ngược lại, nếu cực nổi chứa điện tích, nó tạo ra trường điện từ ngăn cản FET dẫn, dẫn đến mức logic 0.
Quá trình nạp điện tử vào cửa nổi của EPROM diễn ra qua các xung điện có độ rộng khoảng 50 ms và biên độ 20V, tác động lên cực gate và cực drain Khi xung điện tắt, điện tử được lưu trữ tại vùng cửa nổi với thời gian lưu trữ lên đến 10 năm Để xóa dữ liệu trên EPROM, cần chiếu ánh sáng tử ngoại vào chip nhớ, giúp các điện tử hấp thu đủ năng lượng để thoát ra khỏi cực nổi, khiến toàn bộ EPROM chứa giá trị 1 Do đó, các chip EPROM được thiết kế với một cửa sổ bằng thạch anh để ánh sáng tử ngoại có thể đi qua.
Gần đây, chip ROM có thể xóa bằng điện (EEPROM) đã xuất hiện để thay thế cho cửa sổ thạch anh không tiện lợi EEPROM có cấu tạo tương tự như EPROM nhưng được bổ sung thêm một lớp màng oxide giữa vùng cực nổi và cực drain, cho phép điện tử di chuyển khi áp dụng điện áp âm Quá trình lập trình của EEPROM giống với EPROM, nhưng để xóa dữ liệu, chỉ cần áp dụng điện áp -20V vào cực gate và cực drain trong thời gian thích hợp, tránh làm điện tích dương xuất hiện trên cực nổi, gây ảnh hưởng đến hoạt động của FET.
RAM là thế hệ tiếp theo của ROM, cả hai đều là bộ nhớ truy xuất ngẫu nhiên, cho phép dữ liệu được truy xuất không theo thứ tự Tuy nhiên, ROM có tốc độ chậm hơn nhiều so với RAM, với thời gian xử lý dữ liệu của ROM thường trên 50ns, trong khi RAM chỉ cần dưới 10ns.
Cấu tạo của DRAM bao gồm việc xác định ô nhớ thông qua hai phần địa chỉ: địa chỉ hàng và địa chỉ cột Hai địa chỉ này được đưa vào bộ đệm theo thứ tự, trong khi quá trình dồn kênh địa chỉ được điều khiển bởi các tín hiệu RAS (Row Access Strobe) và CAS (Column Access Strobe) Bộ điều khiển nhớ của CPU thực hiện ba công việc chính: phân chia địa chỉ từ CPU thành địa chỉ hàng và cột, kích hoạt chính xác các chân RAS, CAS và WE, cùng với việc truyền và nhận dữ liệu đọc, ghi.
Một ô nhớ của DRAM có thể biểu diễn như hình vẽ:
Điện tích trên tụ điện trong DRAM giảm theo thời gian do hiện tượng phóng qua FET và lớp điện môi oxide, dẫn đến nguy cơ mất dữ liệu Để khắc phục tình trạng này, tụ điện cần được nạp lại định kỳ (refresh), thường trong khoảng thời gian từ 1 đến 16 ms, tùy thuộc vào loại RAM.
Để làm tươi ô nhớ trong DRAM, người ta sử dụng chu kỳ đọc giả (dummy read) bằng cách kích hoạt tín hiệu RAS và đưa địa chỉ hàng vào, trong khi tín hiệu CAS bị cấm để ngăn chặn việc truyền dữ liệu Quá trình làm tươi này yêu cầu cấp tất cả các địa chỉ một cách tuần tự Tuy nhiên, nhược điểm của phương pháp này là cần sử dụng mạch logic hoặc chương trình để thực hiện Trong máy tính, việc này được thực hiện thông qua kênh 0 của DMAC 8237, với tác động định kỳ từ bộ đếm 1 của PIT 8253.
- Tác động CAS trước RAS:
DRAM sở hữu mạch logic làm tươi độc lập với bộ đếm địa chỉ, trong đó tín hiệu CAS được kích hoạt trước tín hiệu RAS Địa chỉ làm tươi được phát ra nội bộ nhờ bộ đếm địa chỉ mà không cần sự can thiệp của mạch logic bên ngoài Sau mỗi chu kỳ làm tươi, bộ đếm địa chỉ tự động tăng thêm 1 để chuyển đến địa chỉ tiếp theo.
Chu kỳ làm tươi diễn ra sau chu kỳ đọc bộ nhớ, với tín hiệu CAS giữ mức thấp và RAS lên mức cao, trong khi bộ đếm địa chỉ tự phát ra địa chỉ làm tươi Việc đọc dữ liệu có thể thực hiện đồng thời với chu kỳ làm tươi, giúp tiết kiệm thời gian vì thời gian làm tươi thường ngắn hơn thời gian đọc Đối với SRAM, nội dung ô nhớ được giữ nguyên mà không cần làm tươi khi không mất nguồn cung cấp Thời gian xử lý khuếch đại trong SRAM ngắn hơn DRAM do điện áp chênh lệch lớn, với thời gian truy xuất của DRAM khoảng 1ns và SRAM khoảng 40ns SRAM không cần phân kênh địa chỉ hàng và cột, giúp giảm thời gian truy xuất, và sau khi dữ liệu ổn định, bộ giải mã cột sẽ chọn cột phù hợp để đưa dữ liệu đến bộ đệm ngõ ra.
Các khác biệt của SRAM so với DRAM:
- Tốc độ của SRAM lớn hơn DRAM do không phải tốn thời gian refresh
- Chế tạo SRAM tốn kém hơn DRAM nên thông thường sử dụng DRAM để hạ giá thành sản phẩm.
- FPM - DRAM (Fast Page Mode DRAM)
DRAM được truy cập thông qua kỹ thuật phân trang, giúp tối ưu hóa quá trình truy cập dữ liệu Thay vì sử dụng phương pháp truyền thống với việc chọn địa chỉ hàng và cột, phân trang cho phép truy cập nhanh hơn bằng cách giữ nguyên địa chỉ hàng và chỉ thay đổi giá trị cột Kỹ thuật này được gọi là bộ nhớ đánh số trang (Page mode), mang lại hiệu suất cao hơn trong việc truy xuất dữ liệu.
Fast page Mode (FPM) Ngoài ra còn một số cách gọi khác là: Column hay Nibble Mode Memory
- EDO - DRAM (Extended Data Out DRAM)
EDO RAM, một loại bộ nhớ được sử dụng trong các máy Pentium từ năm 1995, là phiên bản cải tiến của bộ nhớ FPM với tính năng sửa lỗi, còn được gọi là Hyper Page Mode Công nghệ này được phát minh và cấp bằng sáng chế bởi hãng Micron Technology.
Bộ nhớ EDO, viết tắt của Extended Data Out, được sản xuất với các chip cho phép chồng các lần truy cập liên tiếp, giúp tiết kiệm thời gian khoảng 10ns mỗi chu kỳ so với FPM Để sử dụng bộ nhớ EDO, chipset của mainboard cần hỗ trợ loại bộ nhớ này, và hầu hết các mainboard từ Intel 430 FX (Trion) ra mắt năm 1995 đều tương thích Với chi phí tương đương chip chuẩn và sự hỗ trợ rộng rãi từ các mainboard Intel, EDO RAM trở thành lựa chọn phổ biến trong thị trường máy tính EDO RAM lý tưởng cho các máy có tốc độ bus dưới 66 MHz, chủ yếu là các máy trước năm 1998, nhưng từ năm 1998, thị phần của EDO RAM đã giảm do sự xuất hiện của SDRAM nhanh hơn và hiện đại hơn.
(Synchronuos DRAM) đã trở thành bộ nhớ chuẩn của các máy PC mới.
- BDEO-DRAM (Burst Extended Data Out DRAM)
Là thế hệ sau của EDO DRAM, dùng kỹ thuật đường ống (pipeline) để rút ngắn thời gian dò địa chỉ.
SDRAM (Synchronous DRAM) là loại RAM được chế tạo với nguyên lý khác biệt so với các loại RAM trước đây Khái niệm "đồng bộ" trong SDRAM rất quan trọng, vì RAM này hoạt động dựa vào bộ điều khiển xung nhịp, cho phép dữ liệu được truy xuất hoặc cập nhật khi tín hiệu clock chuyển từ logic 0 sang 1 Kỹ thuật này giúp SDRAM và các thế hệ sau đạt được tốc độ cao hơn hẳn so với các loại DRAM trước, với các tốc độ 66, 100 và 133 MHz.
DDR SDRAM (Double Data Rate SDRAM) là bộ nhớ được cải tiến từ SDRAM, với khả năng nhân đôi tốc độ truy cập bằng cách sử dụng cả hai cạnh của chu kỳ đồng hồ, tức là khi tín hiệu chuyển từ logic 0 sang 1 và từ logic 1 sang 0 Loại RAM này mang lại hiệu suất cao hơn so với SDRAM truyền thống.
CPU Intel và AMD hỗ trợ, tốc độ vào khoảng 266 MHz (DDR-SDRAM đã ra đời trong năm 2000)
B ộ nh ớ đệ m Cache
3.3.1 Tổng quan và ý nghĩa của Cache
Bộ nhớ Cache là loại bộ nhớ tốc độ cao nằm trong CPU, giúp tăng tốc độ truy cập dữ liệu và lệnh được lưu trữ trong RAM.
Máy tính sẽ không hoạt động hiệu quả nếu không có bộ vi xử lý (CPU) thực hiện nhiệm vụ Các công việc được thực hiện thông qua chương trình, trong đó chứa nhiều lệnh để hướng dẫn CPU hoạt động.
CPU lấy chương trình từ bộ nhớ RAM, nhưng khi nguồn điện bị cắt, dữ liệu trong RAM sẽ bị mất, khiến nó trở thành một môi trường dễ bay hơi Do đó, các chương trình và dữ liệu cần được lưu trữ trên các thiết bị không dễ bay hơi như ổ cứng hoặc đĩa quang như CD và DVD sau khi tắt máy tính.
Khi bạn nhấp đúp vào biểu tượng của một chương trình trong Windows, chương trình đó sẽ được khởi động Thông thường, các chương trình này được lưu trữ trên ổ đĩa cứng của máy tính.
Khi gọi một chương trình, nó sẽ được nạp vào bộ nhớ RAM Sau đó, CPU sẽ truy xuất chương trình thông qua một mạch gọi là bộ điều khiển bộ nhớ (memory controller), thành phần này nằm trong chipset (chip cực bắc) trên các bộ vi xử lý Intel hoặc bên trong CPU trên các bộ vi xử lý AMD.
CPU không thể trực tiếp tìm nạp dữ liệu từ ổ đĩa cứng do tốc độ truy xuất dữ liệu quá thấp Chẳng hạn, ổ cứng SATA-300, một trong những loại ổ cứng nhanh nhất hiện nay, có tốc độ truyền tải lý thuyết chỉ 300 MB/s Trong khi đó, một CPU hoạt động ở tốc độ 2GHz với băng thông 64bit có thể truyền tải dữ liệu lên đến 16GB/s, tức là nhanh gấp 50 lần so với ổ cứng.
Tốc độ khác nhau giữa ổ đĩa cứng và bộ nhớ RAM xuất phát từ sự khác biệt trong cấu tạo của chúng Ổ đĩa cứng bao gồm các hệ thống cơ khí, vốn chậm hơn so với hệ thống điện tử thuần túy, vì các thành phần cơ khí cần phải chuyển động để đọc dữ liệu Ngược lại, bộ nhớ RAM hoàn toàn là điện tử, giúp nó có tốc độ nhanh hơn đáng kể so với ổ đĩa cứng và ổ quang.
Mặc dù bộ nhớ RAM nhanh nhất hiện nay không thể so sánh với tốc độ của CPU, nhưng các bộ nhớ DDR2-800 có khả năng truyền tải dữ liệu ở tốc độ từ 6.400 MB/s đến 12.800 MB/s khi sử dụng chế độ hai kênh Con số này có thể tăng lên đến 16GB/s nhờ vào khả năng tìm nạp dữ liệu từ bộ nhớ cache L2 của CPU với tốc độ 128-bit hoặc 256-bit.
32 GB/s hoặc 64 GB/s nếu CPU làm việc bên trong với tốc độ 2GHz
Giải pháp để giảm ảnh hưởng của việc sử dụng bộ nhớ RAM chậm hơn CPU là sử dụng bộ nhớ Cache, một loại RAM tĩnh nhỏ được đặt giữa CPU và bộ nhớ RAM Hiện nay, một lượng nhỏ bộ nhớ Cache này đã được tích hợp ngay bên trong CPU, giúp cải thiện hiệu suất xử lý.
Bộ nhớ Cache copy hầu hết các dữ liệu đã được truy cập gần đây từ bộ nhớ
RAM vào bộ nhớ tĩnh và dự đoán dữ liệu mà CPU sẽ yêu cầu tiếp theo, tải chúng vào bộ nhớ tĩnh trước khi có yêu cầu thực tế từ CPU Mục tiêu là để CPU có thể truy cập vào bộ nhớ Cache nhanh chóng hơn, thay vì phải truy cập trực tiếp vào RAM, giúp truy vấn dữ liệu từ Cache gần như ngay lập tức Việc CPU thường xuyên truy cập vào Cache thay vì RAM sẽ làm tăng tốc độ hoạt động của hệ thống Ngoài ra, chúng ta có thể hoán đổi hai thuật ngữ dữ liệu và chỉ lệnh, vì nội dung lưu trữ tại mỗi địa chỉ nhớ không có sự khác biệt trong bộ nhớ.
Cache có tốc độ truy xuất nhanh hơn rất nhiều bộ nhớ chính
Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ trao đổi thông tin giữa CPU và bộ nhớ chính
Cache thường được đặt trong chip vi xử lý
Các thao tác chính c ủ a Cache:
CPU yêu cầu lấy nội dung của một ngăn nhớ bằng việc đưa ra một địa chỉxác định ô nhớ
CPU kiểm tra nội dung cần tìm trong bộ nhớ Cache Nếu dữ liệu có sẵn, CPU sẽ nhận trực tiếp từ Cache Ngược lại, nếu không có, bộ điều khiển Cache sẽ đọc khối nhớ chứa dữ liệu cần thiết và chuyển nó vào Cache trước khi gửi đến CPU.
Sơ đồ thao tác cache, bộ nhớ chính và CPU
Bộ nhớ cache được tổ chức thành các line (C line), mỗi line gồm hai trường: trường Tag và trường Block Trường Tag lưu trữ địa chỉ ô nhớ từ bộ nhớ chính (RAM) được chuyển vào cache, trong khi trường Block chứa dữ liệu của block được lấy từ bộ nhớ chính.
Trên Bộ nhớ chính cũng được chia thành các block có kích thước bằng
71 kích thước block trên Cache
Trong mỗi block lại được chia thành k word
Vậy: Trên Bộ nhớ chính có 2 n word => số block = 2 n /k
Kích thước của cache = C*k word
3.3.2 Các phương pháp ánh xạ cache a) Ánh xạ trực tiếp
Nguyên tắc: Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một vị trí Line duy nhất của cache:
Tổng quát: B(j) chỉ có thể được nạp vào L(j mod m) (với m là số Line của cache)
Mô tả: Đặc điể m c ủ a ánh x ạ tr ự c ti ế p
Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trường:
Trường Word gồm W bit xác định một từ nhớ trong Block hay Line: 2 W kích thước của Block hay Line
Trường Line gồm L bit xác định một trong số các Line trong cache: 2 L = số Line trong cache = m
Trường Tag gồm T bit: T = N - (W+L), 2 T = số block của bộ nhớ chính
Khi CPU phát ra địa chỉ A với N bit, nó sẽ truy cập vào dòng (L mod m) trên cache Nếu trường tag của dòng này trùng với trường tag trong địa chỉ A, sẽ xảy ra cache hit và word thứ W trong dòng đó sẽ được tải vào CPU Ngược lại, nếu không trùng (cache miss), hệ thống sẽ truy xuất block thứ T từ địa chỉ A để tải vào cache.
Bộso sánh đơn giản vì chỉ thực hiện một lần với 2 toán hạng vào
Xác suất cache hit thấp và hiệu suất của cache không đạt yêu cầu do mỗi block chỉ có thể được lưu trữ tại một vị trí cố định, trong khi các vị trí khác có thể vẫn còn trống.
Hãy xác định giá trị của Line (block), Tag và Word trong địa chỉ có kích thước
32 bit là 3FE9704Ah, biết rằng: o Bộ nhớ sử dụng cơ chế ánh xạ trực tiếp o 1 word=2 byte: o Kích thước cache 16K line o Kích thước của 1 bock = 1 line = 16 word
Giải o 3FE9704Ah = 0011 1111 1110 1001 0111 0000 0100 1010 b o Kích thước cache 16K line = 2 4 x 2 10 line = 2 14 line => L bit o Kích thước 1 block = 16 word = 2 4 => k = 4 bit o => Sốbít cho trường Tag = 32 – 4 – 14 = 14 o Kết quả là:
Ánh xạ toàn phần là phương pháp khắc phục nhược điểm của phương pháp trực tiếp, khi mà nhiều block có thể tranh chấp một line trên cache trong khi các vị trí khác vẫn còn trống Phương pháp này cho phép một block từ MainMem được tải vào bất kỳ vị trí line nào còn trống trên cache, giúp tối ưu hóa việc sử dụng bộ nhớ.
Mỗi Block có thể nạp vào bất kỳ Line nào của cache