Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Bên cạnh thuật ngữ CPU, bộ nhớ đệm (cache) cũng là một thuật ngữ thường được nghe nói đến. Vậy bạn có biết cache là gì? Nó có tác dụng gì trong máy tính?

Bộ nhớ đệm của CPU là gì?

Bộ nhớ đệm của CPU được gọi là Cache, nó đóng vai trò như là một nơi lưu trữ tạm thời những lệnh mà CPU cần xử lý (Lệnh này bao gồm tất cả các thao tác mà bạn thường hay sử dụng trên máy tính, từ việc soạn thảo văn bản đơn giản đến game nặng). Những lệnh này sẽ xếp hàng với nhau chờ được xử lý. Vì vậy, bộ nhớ đệm càng lớn thì sẽ chứa được nhiều lệnh hơn nhờ đó giúp rút ngắn thời gian chờ và tăng hiệu suất làm việc của CPU .

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Các loại Cache hỗ trợ cho CPU

Có tất cả 3 loại cache là L1, L2 và L3. Để dễ hiểu hơn, bạn đọc theo dõi hình bên dưới, trong quá trình CPU xử lý, L1 cache sẽ kiểm tra xem L2 cache có những gì mình cần hay không, có lệnh gì từ người dùng đang chờ xử lý hay không. Sau đó L2 cache sẽ tiếp tục lấy thông tin từ L3 cache (một số dòng Laptop có hỗ trợ thêm L3 cache), những thông tin này sẽ được lấy từ RAM, ổ cứng của Laptop…Những thông tin này là gì, đơn giản nó chỉ là một cú lick chuột của bạn vào bất kỳ chương trình hay phần mềm nào, hệ thống sẽ ghi nhận thông tin chuyển đến cho các bộ nhớ đệm. Quá trình này diễn ra rất nhanh, bản thân người dùng sẽ không cảm nhận được.

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Dung lượng của cache khoảng bao nhiêu?

L1 cache thường có dung lượng chỉ vài chục KB (từ 8KB – đến 32KB). L2 cache thường có dung lượng khoảng và trăm KB hoặc vài MB (256KB, 512KB, 1MB, 2MB, 4MB, 6M, 8M), L3 cache cũng vậy, thường có dung lượng khoảng vài MB.

Bộ nhớ đệm của một số dòng laptop

Laptop cao cấp như: Dell Inspiron 7737, Asus PU401LA có bộ nhớ đệm L3 cache 4MB, trong khi Lenovo Y5070 có bộ nhớ đệm L3 cache lên đến 6MB.

Laptop tầm trung: HP Pavilion 15 p081TX, Dell Vostro 3446, Asus PU401LA có bộ nhớ đệm 3MB trong khi Asus P550LD lên tới 4MB bộ nhớ đệm.

Laptop giá rẻ: Acer Aspire ES1 411, Lenovo G4030, Asus X453MA, HP 14 r069TU đều có bộ nhớ đệm L2 cache 2MB.

Xem thêm

RAM là gì?

Card đồ họa là gì?

CPU là gì?

DienmayXANH.com

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Hệ thống thanh ghi Là các phần tử có khả năng lưu trữ thông tin với dung lượng 8, 16, 32, 64 bit. Được xây dựng từ các Flip Flop nên có tốc độ truy xuất rất nhanh. Phân loại thanh ghi:

+ Thanh ghi tổng quát: Chủ yếu dùng để lưu trữ dữ liệu trong quá trình thực thi chương trình, nhưng mỗi thanh ghi còn có 1 số chức năng riêng.


+ Thanh ghi điều khiển: Các bit của nó qui định tác vụ của các đơn vị chức năng của máy tính.
+ Thanh ghi trạng thái: Lưu trữ thông tin mô tả trạng thái.
AX Register

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Thanh ghi AX (Accumulator register): Thanh ghi tích luỹ, dài 16 bit nhưng nó cũng có thể chia làm 2 thanh ghi 8 bit AH và AL. AX ngoài chức năng lưu trữ dữ liệu, nó còn được CPU dùng trong phép toán số học như nhân, chia.

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Thanh ghi AH là nửa cao của thanh ghi AX. Thanh ghi AL là nửa thấp của thanh ghi AX. VD: Nếu AX = 1234h thì AH = 12HAL = 34h.

BX Register


Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Thanh ghi BX (Base register): Dài 16 bit nhưng nó cũng có thể chia làm 2 thanh ghi 8 bit BH và BL. BX lưu trữ địa chỉ của 1 thủ tục hay biến, nó cũng được dùng thực hiện các phép dời chuyển số học và dữ liệu.

DX Register


Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Thanh ghi DX (Data register): Dài 16 bit nhưng nó cũng có thể chia làm 2 thanh ghi 8 bit DH và DL. Thanh ghi DX: Có vai trò đặc biệt trong phép nhân và phép chia ngoài chức năng lưu trữ dữ liệu. VD: Khi nhân DX sẽ lưu giữ 16 bit cao của tích.

CX Register


Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

CX (Counter register): Thanh ghi này dùng làm bộ đếm trong các vòng lặp. Các lệnh tự động lặp lại và sau mỗi lần lặp giá trị của CX tự động giảm đi 1. CL thường chứa số lần dịch, quay trong các lệnh dịch, quay thanh ghi. CX dài 16 bit, nó cũng có thể chia làm 2 thanh ghi 8 bit CH và CL.

Các thanh ghi Segment

CPU có 4 thanh ghi segment dài 16 bit, các thanh ghi này không thể chia làm 2 thanh ghi 8 bit như 4 thanh ghi AX, BX, CX và DX. Các thanh ghi đoạn được sử dụng như là địa chỉ cơ sở của các lệnh trong chương trình, Stack và dữ liệu. 4 thanh ghi đoạn: CS (Code Segment), DS (Data Segment), SS (Stack Segment) và ES (Extra Segment). CS: Chứa địa chỉ bắt đầu của code trong chương trình. DS: Chứa địa chỉ của các biến khai báo trong chương trình. SS: Chứa địa chỉ của bộ nhớ Stack dùng trong chương trình. ES: Chứa địa chỉ cơ số bổ sung cho các biến bộ nhớ.

Thanh ghi 32 bit

Đối với một số CPU đời mới, có các thanh ghi dài 32, 64 bit. Ta ghi thêm E đứng trước tên các thanh ghi 16 bit... EAX, EBX, ECX, EDX...

Thanh ghi đoạn và sự hình thành địa chỉ

8088 sử dụng 20 bit để đánh địa chỉ bộ nhớ -> quản lý trên 1Mb bộ nhớ. Nhưng 8088 lại không có thanh ghi nào 20 bit, tất cả là 16 bit do đó 1 thanh ghi chỉ có thể đánh địa chỉ tối đa là 64Kb bộ nhớ. Như vậy phải kết hợp 2 thanh ghi mới địa chỉ hoá toàn bộ nhớ, 8088 sử dụng 1 trong các thanh ghi dùng chung và 1 trong các thanh ghi đoạn (CS, DS, SS, ES) để tạo thành 1 địa chỉ 20bit.

Sự phân đoạn bộ nhớ

CPU 8086 dùng phương pháp phân đoạn bộ nhớ để quản lý bộ nhớ 1Mb của nó. Địa chỉ 20bit của bộ nhớ 1Mb không thể chứa đủ trong các thanh ghi 16bit của CPU 8086 -> bộ nhớ 1Mb được chia ra thành các đoạn (segment) 64Kb. Địa chỉ trong các đoạn 64Kb chỉ có 16bit nên CPU 8086 dễ dàng xử lý bằng các thanh ghi của nó. -> Phân đoạn bộ nhớ: Là cách dùng các thanh ghi 16bit để biểu diễn cho địa chỉ 20bit.

Địa chỉ vật lý và địa chỉ luận lý

Địa chỉ 20 bits được gọi là địa chỉ vật lý. Địa chỉ vật lý dùng như thế nào? Dùng trong thiết kế các mạch giải mã địa chỉ cho bộ nhớ và xuất nhập. Còn trong lập trình, địa chỉ vật lý không thể dùng được mà nó được thay thế bằng địa chỉ luận lý (logic).

Địa chỉ luận lý

Địa chỉ của 1 ô nhớ được xác định bởi 2 phần:

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Sự hình thành địa chỉ Hãng Intel đề xuất 1 phương pháp để hình thành địa chỉ. Mỗi địa chỉ ô nhớ được hình thành từ 1 phép tính tổng 1 địa chỉ cơ sở và 1 địa chỉ offset. Địa chỉ cơ sở lưu trong 1 thanh ghi segement, còn địa chỉ offset nằm trong 1 thanh ghi chỉ số hay thanh ghi con trỏ. Phép cộng này sẽ tạo 1 địa chỉ 20 bit gọi là địa chỉ vật lý.

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí


Sự hình thành địa chỉ tuyệt đối

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí


Cách tính địa chỉ vật lý từ địa chỉ luận lý

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Sự chồng chất các đoạn Địa chỉ segment hay còn gọi là địa chỉ nền của đoạn. Nó cho biết điểm bắt đầu của đoạn trong bộ nhớ. Địa chỉ offset thể hiện khoảng cách kể từ đầu đoạn của ô nhớ cần tham khảo. Do offset dài 16 bit nên chiều dài tối đa của mỗi đoạn là 64K. Trong mỗi đoạn, ô nhớ đầu tiên có offset là 0000h và ô nhớ cuối cùng là FFFFh.

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Mỗi ô nhớ chỉ có địa chỉ vật lý nhưng có thể có nhiều địa chỉ luận lý. VD: 1234 : 1234 1334 : 0234 1304 : 0534 Đều có chung địa chỉ vật lý 13574h Tại sao? Để hiểu rõ tại sao ta hãy xét mối quan hệ giữa địa chỉ vật lý với sagment và offset.

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Giải thích: 0000 : 0000 -> 00000h Giữ nguyên phần segment, tăng phần offset lên 1 thành ra địa chỉ luận lý là 0000 : 0001. Địa chỉ vật lý tương ứng là 00001h. Tương tự với địa chỉ luận lý là 0000 : 0002 ta có địa chỉ vật lý là 00002h Khi offset tăng 1 đơn vị thì địa chỉ vật lý tăng 1 địa chỉ hoặc là tăng 1 byte. Như vậy có thể xem đơn vị của offset là byte. Làm lại quá trình trên nhưng giữ nguyên phần offset chỉ tăng phần segment. 0001 : 0000 -> 00010h 0002 : 0000 -> 00020h Khi segment tăng 1 đơn vị thì địa chỉ vật lý tăng 10h địa chỉ hoặc là tăng 16 bytes. Đơn vị của segment là paragraph. Ta thấy segment 0000 nằm đầu vùng nhớ nhưng segment 0001 bắt đầu cách đầu vùng nhớ chỉ có 16 bytes, segment 0002 bắt đầu cách đầu vùng nhớ 32 bytes... Phần chồng chập 3 segment 0000, 0001, 0002 trên hình vẽ là vùng bộ nhớ mà bất kỳ ô nhớ nào nằm trong đó (địa chỉ vật lý từ 00020h đến 0FFFFh) đều có thể có địa chỉ luận lý tương ứng trong cả 3 segment. VD: Ô nhớ có địa chỉ 0002Dh sẽ có địa chỉ logic trong segment 0000 là 0000 : 002D Trong segment 0001 là 0001 : 001D Trong segment 0002 là 0002 : 000D -> Nếu vùng bộ nhớ nào càng có nhiều segment chồng chập lên nhau thì các ô nhớ trong đó càng có nhiều địa chỉ luận lý. Một ô nhớ có bao nhiêu địa chỉ luận lý? Một ô nhớ có ít nhất 1 địa chỉ luận lý và nhiều nhất là 65536/16 = 4096 địa chỉ luận lý.

Các thanh ghi đoạn CS, DS, SS, ES

3 trong 4 thanh ghi đoạn được dùng trong các mục đích đặc biệt sau. CS: Xác định đoạn lệnh - nơi chứa chương trình được thi hành. DS: Xác định đoạn dữ liệu - nơi chứa chương trình được thi thành. SS: Xác định đoạn Stack - vùng làm việc tạm thời dùng để theo dõi các tham số và các địa chỉ đang được chương trình hiện hành sử dụng. ES: Trỏ đến đoạn thêm, thường được dùng để bổ sung cho đoạn dữ liệu -> có vùng nhớ > 64k cho đoạn dữ liệu.

Thanh ghi trạng thái (thanh ghi cờ)

Thanh ghi cờ là thanh ghi 16 bit nằm trong EU (Excution Unit). Tuy nghiên chỉ có 9 trong 16 bit được sử dụng, 7bit còn lại không dùng.

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí

Giải thích: Cờ CF: Chỉ thị cộng có nhớ, trừ có mượn. Cờ PF: On khi kết quả của tác vụ có số bit 1 là số chẵn. Nếu số bit 1 là số lẻ thì PF là Off. Cờ AF: Có nhớ trong phép cộng hoặc có mượn trong phép trừ với 4 bit thấp sang 4 bit cao. Cờ ZF: On khi tác vụ luận lý cho kết quả là 0. Cờ SF: Bit cao nhất của kết quả sẽ được copy sang SF.SF = 1 kết quả là số âm. SF = 0 khi kết quả là số dương. Cờ OF: OF = 1 khi kết quả bị tràn số (vượt quá khả năng lưu trữ). Nếu kết quả không bị tràn thì OF = 0. 3 bit còn lại là 3 bit điều khiển: Cờ TF: Báo CPU thi hành từng bước. Cung cấp công cụ debug chương trình. Cờ IF: IF = 1 giúp 8086 nhận biết có yêu cầu ngắt quãng có che. Cờ DF: Xác định hướng theo chiều tăng/giảm trong xử lý chuỗi. 8086 cho phép User lập trình bật tắt các cờ CF, DF, IF, TF.

Thanh ghi chỉ số (Index)

5 thanh ghi offset dùng để xác định chính xác 1 byte hay 1 word trong 1 đoạn 64k, Đó là: IP: Thanh ghi con trỏ lệnh, cho biết vị trí của lệnh hiện hành trong đoạn lệnh. Con trỏ lệnh IP còn được gọi là bộ đếm chương trình. Thường được dùng kết hợp với CS để theo dõi vị trí chính xác của lệnh sẽ được thực hiện kế tiếp. Các thanh ghi con trỏ Stack: SP và BP, mỗi thanh ghi dài 16 bit. SP (Stack pointer) cho biết vị trí hiện hành của đỉnh Stack. BP (Basic pointer) dùng để truy cập dữ liệu trong Stack. SI (Source index) trỏ đến ô nhớ trong đoạn dữ liệu được định địa chỉ bởi thanh ghi DS. DI (Destination) chức năng tương tự SI. Hai thanh ghi này thường dùng trong xử lý chuỗi.

Địa chỉ luận lý và thanh ghi

Để tham khảo đến bộ nhớ trong chương trình, VXL 8086 cho phép sử dụng các địa chỉ luận lý 1 cách trực tiếp hoặc thông qua các thanh ghi của nó. Thanh ghi đoạn dùng để chứa segment. Thanh ghi tổng quát dùng để chứa địa chỉ trong đoạn offset. Để tham khảo đến địa chỉ luận lý có segment trong thanh ghi DS, offset trong thanh ghi BX, ta viết DS:BX.

Các đặc tính của CPU Intel

Hiệu quả của CPU thuộc họ Intel khi xử lý và chuyển giao thông tin được xác định bởi các yếu tố sau: + Tần số mạch xung đồng hồ của CPU. + Độ rộng của Data bus. + Độ rộng của Address bus. + Tần số mạch xung đồng hồ của CPU càng nhanh thì tốc độ xử lý càng nhanh. + Độ rộng của Data bus càng rộng thì càng nhiều data được chuyển giao trong 1 lần giao dịch. + Độ rộng của Address bus càng rộng thì khả năng quản lý bộ nhớ càng lớn.

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí


RISC & CISC
Nguyên lý CISC Complex Intruction Set Computer + Tập lệnh khá lớn > 300 lệnh. + Khả năng định vị phức tạp. + Một số lệnh cần phải vi lệnh hoá quá nhiều lệnh -> nạp lâu -> làm chậm hệ thống lệnh phức tạp -> nên thời gian giãi mã lệnh nhiều khi lớn hơn thời gian thực thi. Chỉ có hơn 20% lệnh thường dùng tới.

Nguyên lý RISC (tập lệnh thu gọn)

Reduce Intruction Set Computer Tập lệnh nhỏ -> thi hành ngay không cần giải mã. Lệnh làm việc theo cơ chế đường ống (pipeline).

CPU Pentium

3 thành phần góp sức tăng tốc độ xử lý của Petium + Đơn vị tính toán số nguyên supercallar. + Bộ nhớ Cache cấp 1 ở bên trong CPU. + Đơn vị tính toán số chấm động supercallar.

Thanh ghi là vùng nhớ đặc biệt được CPU sử dùng để lưu trữ tạm thời các lệnh và dữ liệu đang xử lí