KTMT-PHD

Màu nền
Font chữ
Font size
Chiều cao dòng

Giới thiệu kiến trúc máy

tínhNội dung

2010 Giới thiệu kiến trúc máy tính 2

 Kiến trúc và tổ chức máy tính

 Cấu trúc máy tính và các chức năng các bộ phận

 Lịch sử máy tính

 Kiến trúc Von Neumann

 Kiến trúc architecture

 Kiến trúc hiện đại

 Biểu diễn dữ liệu máy tínhKiến trúc vs. tổ chức

2010 Giới thiệu kiến trúc máy tính 3

 Tổ chức máy tính là khoa học nghiên cứu về các bộ

phận của máy tính và phương pháp làm việc của

chúng

 Kiến trúc máy tính là khoa học nghiên cứu và lựa

chọn kết nối các bộ phận để tạo nên các máy tính

đáp ứng mục tiêu chức năng, hiệu năng và chi phí:

 Hiệu năng: càng nhanh càng tốt

 Chức năng: càng nhiều càng tốt

 Chi phí: càng rẻ càng tốtKiến trúc vs. tổ chức

2010 Giới thiệu kiến trúc máy tính 4

 Ba thành phần chính của kiến trúc

 Kiến trúc tập lệnh

 Vi kiến trúc

 Thiết kế hệ thốngKiến trúc vs. tổ chức

2010 Giới thiệu kiến trúc máy tính 5

 Kiến trúc tập lệnh: là hình ảnh khái quát của hệ

thống máy tính ở mức ngôn ngữ máy gồm có:

 Tập lệnh

 Các chế độ địa chỉ bộ nhớ

 Các thanh ghi

 Định dạng dữ liệu và địa chỉKiến trúc vs. tổ chức

2010 Giới thiệu kiến trúc máy tính 6

 Vi kiến trúc cách tổ chức hay mô tả máy tính ở mức

thấp liên quan đến:

 Kết nối các bộ phận phần cứng

 Tương tác giữa các bộ phận để triển khai kiến trúc tập

lệnhKiến trúc vs. tổ chức

2010 Giới thiệu kiến trúc máy tính 7

 Thiết kế hệ thống liên quan đến tất cả các bộ phận phần

cứng khác bên trong hệ thống máy tính như

 Kết nối các hệ thống: buýt

 Điều khiển và phân cấp bộ nhớ

 Các cơ chế giảm tải cho CPU như DMA

 Vấn đề đa xử lýSơ đồ khối chức năng

2010 Giới thiệu kiến trúc máy tính 8Các bộ phận chính - CPU

2010 Giới thiệu kiến trúc máy tính 9

 CPU:

 Nạp các lệnh từ bộ nhớ và thực thi chúng

 CPU gồm có:

 Đơn vị điều khiển (CU)

 Đơn vị số học và lô gíc (ALU)

 Các thanh ghiCPU

2010 Giới thiệu kiến trúc máy tính 10CPU

2010 Giới thiệu kiến trúc máy tính 11Bộ nhớ

2010 Giới thiệu kiến trúc máy tính 12

 Bộ nhớ trong

 Lưu các lệnh và dữ liệu cho CPU xử lý

 Cá loại

 ROM - Bộ nhớ chỉ đọc lưu các lệnh và dữ liệu cho hệ thống

 RAM - Bộ nhớ truy nhập ngẫu nhiên lưu các lệnh và dữ liệu

cho hệ thống và người dùngBộ nhớ

2010 Giới thiệu kiến trúc máy tính 13Thiết bị ngoại vi

2010 Giới thiệu kiến trúc máy tính 14

 Thiết bị vào: điều khiển và nhập dữ liệu

 Bàn phím

 Chuột

 Ổ đĩa

 Máy quét

 Thiết bị ra: xuất dữ liệu

 Màn hình

 Máy in

 Máy vẽ

 Ổ đĩaThiết bị ngoại vi

2010 Giới thiệu kiến trúc máy tính 15Buýt

2010 Giới thiệu kiến trúc máy tính 16

 Buýt hệ thống

 Tập hợp dây dẫn nối CPU với các bộ phận khác của máy

tính

 3 loại:

 Buýt địa chỉ (Buýt A)

 Buýt dữ liệu (Buýt D)

 Buýt điều khiển (Buýt C)Buýt - PCI

2010 Giới thiệu kiến trúc máy tính 17Lịch sử máy tính

2010 Giới thiệu kiến trúc máy tính 18

 Lịch sử máy tính có thể được chia thành 5 thế hệ dựa

trên phát triển của mạch điện tử

 Thế hệ đầu (1944-1959):

 Dùng đèn chân không

 Dùng băng từ

 Mật độ: ~ 1000 phần tử/ 30cm khối

 Ví dụ: ENIAC - Electronic Numerical Integrator and Computer, chi

phí 500,000 USD.ENIAC

2010 Giới thiệu kiến trúc máy tính 19Thế hệ 2 (1960-1964)

2010 Giới thiệu kiến trúc máy tính 20

 Dùng bóng bán dẫn

 Mật độ: ~ 100,000 phần tử/ 30cm khối

 Ví dụ: UNIVAC 1107, UNIVAC III, IBM 7070, 7080,

7090, 1400 series, 1600 series.

 Máy UNIVAC đầu tiên được chuyển cho Cục điều tra

dân số Mỹ 3/1951 với giá US$159,000UNIVAC

2010 Giới thiệu kiến trúc máy tính 21Thế hệ 3 (1964-1975):

2010 Giới thiệu kiến trúc máy tính 22

 Sử dụng mạch tích hợp

 Mật độ: ~ 10 triệu phần tử/30 cm khối

 Ví dụ : UNIVAC 9000 series, IBM System/360,

System 3, System 7UNIVAC 9400

2010 Giới thiệu kiến trúc máy tính 23Thế hệ thứ 4 (1975-1989):

2010 Giới thiệu kiến trúc máy tính 24

 Sử dụng vi mạch tích hợp

 Mật độ: ~ 1 tỷ phần tử/ 30 cm khối

 Ví dụ: IBM System 3090, IBM RISC 6000, IBM RT, Cray 2 XMPCray 2 XMP

2010 Giới thiệu kiến trúc máy tính 25Thế hệ thứ 5 (1990-nay):

2010 Giới thiệu kiến trúc máy tính 26

 Sử dụng các vi mạch tích hợp

 Mật độ: sử dụng công nghệ 0.18m - 0.045m

 Ví dụ: Pentium II, III, IV, M, D, Core Duo, Core 2

Duo, Core Quad,...

 Hỗ trợ xử lý song song

 Hiệu năng cao

 Xử lý tiếng nói và hình ảnhThế hệ 5

2010 Giới thiệu kiến trúc máy tính 27Kiến trúc Von-Neumann nguyên thuỷ

2010 Giới thiệu kiến trúc máy tính 28Kiến trúc Von-Neumann hiện đại

2010 Giới thiệu kiến trúc máy tính 29Đặc điểm

2010 Giới thiệu kiến trúc máy tính 30

 Đưa ra vào 1945.

 Kiến trúc này dựa trên các yếu tố sau:

 Dữ liệu và lệnh được lưu trữ trong bộ nhớ chia sẻ đọc/ghi

 Bộ nhớ được đánh địa chỉ dựa trên các đoạn và không lệ

thuộc và bản chất thông tin lưu trữ

 Các lệnh được thực hiện tuần tựĐặc điểm

2010 Giới thiệu kiến trúc máy tính 31

 Quá trình thực hiện lệnh gồm 3 giai đoạn

 CPU nạp lệnh từ bộ nhớ

 CPU giải mã và thực hiện lệnh, nếu cần dữ liệu thì nạp

dữ liệu từ bộ nhớ

 CPU ghi kết quả vào bộ nhớKiến trúc Harvard

2010 Giới thiệu kiến trúc máy tính 32Kiến trúc Harvard

2010 Giới thiệu kiến trúc máy tính 33

 Bộ nhớ chia thành 2 phần:

 Bộ nhớ chương trình

 Bộ nhớ dữ liệu

 CPU dùng 2 hệ thống buýt để liên lạc với bộ nhớ:

 Buýt địa chỉ/ dữ liệu cho bộ nhớ dữ liệu

 Buýt địa chỉ/ dữ liệu cho bộ nhớ chương trìnhKiến trúc Harvard

2010 Giới thiệu kiến trúc máy tính 34

 Nhanh hơn nhờ buýt rộng hơn

 Hỗ trợ các truy nhập đọc/ ghi bộ nhớ đồng thời, làm

giảm xung độtKiến trúc hiện đại

2010 Giới thiệu kiến trúc máy tính 352010 Giới thiệu kiến trúc máy tính 36

Ví dụ2010 Giới thiệu kiến trúc máy tính 372010 Giới thiệu kiến trúc máy tính 38Biểu diễn dữ liệu

2010 Giới thiệu kiến trúc máy tính 39

 Sử dụng hệ nhị phân (0,1) để biểu diễn dữ liệu

 Hệ thập lục phân 16 chữ số: 0-9, A, B, C, D, E, F.Hệ thập phân

2010 Giới thiệu kiến trúc máy tính 40

 Sử dụng cơ số 10, dùng 10 chữ số: 0, 1, 2, 3, 4, 5, 6,

7, 8, 9.

 Số ở hệ thập phân có thể biểu diễn dưới dạng đa

thức:

anan-1...

a1 = an*10n-1an-1*10n-2*

...*a1*100

Ví dụ

123 = 1*102 + 2 * 101 + 3*100 = 100+20+3

123.456 = 1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2 + 6*10-3

= 100 + 20 + 3 + 0.4 + 0.05 + 0.006 Hệ nhị phân

2010 Giới thiệu kiến trúc máy tính 41

 Sử dụng cơ số 2 dùng chữ số: 0,1.

 Biểu diễn số nhị phân dạng đa thức:

(11001010)2

= 1*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20

= 128 + 64 + 8 + 2 = (202)10Chuyển đổi thập phân sang nhị phân

2010 Giới thiệu kiến trúc máy tính 42Hệ thập lục phân

2010 Giới thiệu kiến trúc máy tính 43

 Sử dụng cơ số 16 có 16 chữ số: 0-9, A, B, C, D, E,

F.

 Mỗi chữ số hệ 16 có thể biểu diễn bằng 1 cụm 4 bít.Tổ chức dữ liệu

2010 Giới thiệu kiến trúc máy tính 44

 Bít

 Đơn vị dữ liệu nhỏ nhất

 Nhận giá trị 0/1

 Nibbles:

 Cụm 4 bít

 Nhận 16 giá trị (0000)2 từ (1111)2,Tổ chức dữ liệu

2010 Giới thiệu kiến trúc máy tính 45

 Byte:

 Cụm 8 bít.

 Biểu diễn 255 giá trị (0000 0000)2 - (1111 1111)2, hay

(00)16 - (FF)16.Tổ chức dữ liệu

2010 Giới thiệu kiến trúc máy tính 46

 Từ:

 16 bits, or 2 bytes

 Lưu trữ 216 (65536) giá trị, (0000)16 -(FFFF)16.Tổ chức dữ liệu

2010 Giới thiệu kiến trúc máy tính 47

 Từ đúp:

 32 bit, or 4 byte, or 2 từ

 lưu trữ 232 giá trị, (0000 0000)16 - (FFFF FFFF)16.Số có dấu và không dấu

2010 Giới thiệu kiến trúc máy tính 48

 Số có dấu: bít có nghĩa lớn nhất (ngoài cùng bên trái)

dùng làm bít dấu

 0  Số dương

 1  Số âm

 Ví dụ

 0011, 0111, 0101

 1011, 1111, 1101

 Số không dấu: Tất cả các bít dùng để biểu diễn giá trị.Số có dấu và không dấu

2010 Giới thiệu kiến trúc máy tính 49

 Dải giá trị: n bít có thể biểu diễn:

 Có dấu: from -2n-1 đến + 2n-1-1

 8 bit: -128 đến +127

 16 bit: -32768 đến +32767

 32 bit: -2,147,483,648 đến +2,147,483,647

 Số không dấu: 0 đến 2n

 8 bit: 0 đến 256

 16 bit: 0 đến 65536

 32 bit: 0 đến 4,294,967,296ASCII

2010 Giới thiệu kiến trúc máy tính 50

 ASCII (American Standard Code for Information

Interchange) bảng mã hoá các chữ cái tiếng Anh.

 Sử dụng 8 bít/ chữ cái.

 ASCII định nghĩa 128 ký tự khác:

 33 các ký tự không in được

 94 các ký tự in được

 Các giá trị 129-255 dành cho tương laiASCII- Các ký tự điều khiển

2010 Giới thiệu kiến trúc máy tính 51ASCII Table - Các ký tự in được

2010 Giới thiệu kiến trúc máy tính 52

ĐƠN VỊ XỬ LÝ TRUNG TÂM

CPU

Giảng viên: Phạm Hoàng Duy

Email: [email protected]ội dung chính

Fall 2009 Kiến trúc máy tính - CPU 2

 Sơ đồ khối tổng quát

 Chu kỳ lệnh

 Các thanh ghi

 Đơn vị điều khiển - CU

 Đơn vị số học và lô gíc - ALUSơ đồ khối

Fall 2009 Kiến trúc máy tính - CPU 3

CU

IR

PC

MAR

MBR

Internal Bus

A

Y

ALU

Z

FR

A

Bus

D

Bus

CU: Control Unit

IR: Instruction Register

PC: Program Counter

MAR: Memory Address Register

MBR: Memory Buffer Register

A: Accumulator Register

Y, Z: Temporary Register

FR: Flag Register

ALU: Arithmetic and

Logic UnitChu kỳ lệnh

Fall 2009 Kiến trúc máy tính - CPU 4

1. Khi chạy chương trình, HĐH nạp chương trình vào bộ

nhớ trong.

2. Địa chỉ của câu lệnh đầu tiên của chương trình được

đặt vào thanh ghi PC

3. Địa chit ô nhớ chứa câu lệnh được chuyển vào buýt

địa chỉ qua thanh ghi MAR

4. Buýt địa chỉ chuyển địa chỉ lệnh tới đơn vị quản lý bộ

nhớ MMU

5. MMU chọn ra ô nhớ và yêu cầu tín hiệu đọc từ CPUChu trình lệnh

Fall 2009 Kiến trúc máy tính - CPU 5

6. Lệnh được chuyển tử ô nhớ vào MBR qua buýt dữ liệu

7. MBR chuyển lệnh tới thanh ghi lệnh IR. Sau đó tới đơn

vị điều khiển CU

8. CU giải mã câu lệnh và tạo ra các tín hiệu yêu cầu thực

hiện tới các đơn vị khác như ALU để thực hiện lệnh

9. Giá trị thanh ghi PC tăng lên 1 trỏ tới câu lệnh kế của

chương trình

10. Lặp lại các bước 2-9 cho tất cả các câu lệnh của

chương trìnhCác thanh ghi CPU

Fall 2009 Kiến trúc máy tính - CPU 6

 Các thanh ghi là các ô nhớ tạm bên trong CPU:

 Lưu các lệnh và dữ liệu để xử lý;

 Có số lượng ít và dung lượng nhỏ;

 Chạy nhanh, ngang với tốc độ CPU.

 Kích cỡ thanh ghi thuỳ thuộc vào thiết kế CPU: 8,

16, 32, 64, 128 và 256 bit.

 Các CPU cũ như 8086, 80x86 có 16-32 thanh ghi;

CPU mới (Intel Pentium 4, Core 2 Duo) có đến hàng

trăm thanh ghi.Thanh ghi tích luỹ

Fall 2009 Kiến trúc máy tính - CPU 7

 Thanh ghi tích luỹ (A) là một trong những thanh ghi

quan trọng dùng để

 Lưu các toán hạng

 Lưu kết quả xử lý

 Kích cỡ tương ứng với độ dài từ của CPU: 8, 16, 32,

64 bit.

 Thanh ghi này cũng dùng để trao đổi dữ liệu đầu vào

và đầu ra.Thanh ghi tích luỹ

Fall 2009 Kiến trúc máy tính - CPU 8

 Ví dụ: x + y  s

 Nạp toán hạng x vào thanh ghi A

 Nạp toán hạng x vào thanh ghi Y

 ALU thực hiện phép cộng A + Y, và lưu kết quả vào Z

 Sau đó kết quả được chuyển vào A.Thanh ghi - PC

Fall 2009 Kiến trúc máy tính - CPU 9

 PC - thanh ghi đếm chương trình hay con trỏ lệnh lưu

địa chỉ ô nhớ của lệnh kế tiếp.

 Khi chương trình được nạp vào bộ nhớ, PC lưu địa chỉ

câu lệnh đầu tiên của chương trình.

 Sau khi CPU thực hiện 1 lệnh, địa chỉ lệnh kế được

nạp vào thanh ghi PC.

 Kích cỡ của PC tuỳ thuộc vào thiết kế CPU: 16, 32, 64

bit.Thanh ghi cờ - FR

Fall 2009 Kiến trúc máy tính - CPU 10

 FR - thanh ghi cờ hay trạng thái: lưu trạng thái kết

quả xử lý của ALU vào trong các bít của mình.

 Có 2 kiểu:

 Status flags: CF, OF, AF, ZF, PF, SF

 Control flags: IF, TF, DF

 Các bít cờ thường được dùng làm điều kiện rẽ

nhánh trong chương trình

 Kích cỡ tuỳ thuộc vào thiết kế của CPU.Thanh ghi cờ

Fall 2009 Kiến trúc máy tính - CPU 11

 ZF: Zero Flag - Cờ không, ZF=1 khi kết quả=0 ; ZF=0 kết quả<>0.

 SF: Sign Flag - Cờ dấu, SF=1 kết quả âm; SF=0 kết quả dương.

 CF: Carry Flag - Cờ nhớ, CF=1 khi có nhớ, mượn 1 ở bít có nghĩa lớn nhất.

 AF: Auxiliary Flag - Cờ phụ, AF=1 khi có nhớ/mượn 1 ở bít có nghĩa lớn nhất

của cụm 4 bít.

 OF: Overflow Flag - Cờ tràn, OF=1 có tràn số; OF=0 khi không tràn số.

 PF: Parity Flag - Cờ chẵn lẻ, PF=1 khi tổng số bít 1 lẻ; PF=0 tổng số bít 1

chẵn.

 IF: Interrupt Flag - Cờ ngắt, IF=1: Cho phép, IF=0: Cấm ngắtCon trỏ ngăn xếp

 Ngăn xếp là đoạn bộ nhớ đặc biệt hoạt

động theo cách vào sau ra trước (Last In

First Out - LIFO)

 SP - là thanh ghi cho biết vị trí đỉnh ngăn

xếp

 2 thao tác ngăn xếp:

 Đặt vào: Đặt dữ liệu vào ngăn xếp

SP  SP + 1

{SP}  Data

 Lấy ra: lấy dữ liệu ra khỏi ngăn xếp

Thanh ghi  {SP}

SP  SP - 1

Fall 2009 Kiến trúc máy tính - CPU 12

SP

Ngăn

xếpThanh ghi dùng chung

Fall 2009 Kiến trúc máy tính - CPU 13

 Các thanh ghi dùng chung được dùng cho nhiều

mục đích:

 Lưu các toán hạng đầu vào

 Lưu các kết quả xử lý

 VD:

 AX: Thanh ghi tích

 BX: Thanh ghi cơ sở

 CX: Thanh ghi đếm

 DX: Thanh ghi dữ liệuThanh ghi lệnh

Fall 2009 Kiến trúc máy tính - CPU 14

 IR - dùng để lưu câu lệnh hiện thời.

 IR lấy lệnh từ thanh ghi đệm MBR và chuyển cho

CPU để giải mã.

MBR IR CUMAR/MBR

Fall 2009 Kiến trúc máy tính - CPU 15

 MAR - Thanh ghi địa chỉ bộ nhớ

 là giao tiếp giữa CPU và buýt địa chỉ.

 nhận địa chỉ bộ nhớ của lệnh kế tiếp từ PC và chuyển

cho buýt địa chỉ.

 MBR - Thanh ghi đệm bộ nhớ

 là giao tiếp giữa CPU và buýt dữ liệu.

 nhận lệnh từ buýt dữ liệu và chuyển cho IR.Các thanh ghi tạm

Fall 2009 Kiến trúc máy tính - CPU 16

 CPU thường dùng 1 số các thanh ghi tạm để:

 Lưu các toán hạng đầu vào

 Lưu kết quả xử lý

 Hỗ trợ xử lý song song

 Cơ chế thực thi tiên tiến như OOO - Out Of Order.Đơn vị điều khiển CU

Fall 2009 Kiến trúc máy tính - CPU 17

Đơn vị điều khiển

CU

IR

CLK Cờ

ALU

Các tín

hiệu điề

khiển

CÁc tín

hiệu điề

khiển

ngoàiĐơn vị điều khiển

Fall 2009 Kiến trúc máy tính - CPU 18

 Điều khiển tất cả các hoạt động của CPU dựa trên

xung nhịp

 Lấy lệnh từ IP giải mã và sinh các tín hiệu điều khiển

 Dùng xung nhịp để đồng bộ các hoạt động bên trong

CPU và giữa CPU với bộ phận bên ngoài.Đơn vị số học và lô gíc ALU

Fall 2009 Kiến trúc máy tính - CPU 19

ADD SUB

MUL DIV SHR ROL

OR NOT

AND XOR

SHL NEG

ROR

IN IN

OUTĐơn vị số học và lô gíc ALU

Fall 2009 Kiến trúc máy tính - CPU 20

 ALU bao gồm các đơn vị xử lý thao tác số học và lô

gíc như cộng, trừ, nhân, chia, NOT, AND, OR.

 ALU có

 2 cổng IN để nhận các dữ liệu vào từ các thanh ghi

 Một cổng OUT được nối tới buýt nội để gửi kết quả tới

các thanh ghi.Buýt nội

Fall 2009 Kiến trúc máy tính - CPU 21

 Là kênh liên lạc các bộ phận CPU

 Hỗ trợ liên lạc song công

 Có các giao tiếp để trao đổi thông tin với các buýt

bên ngoài (buýt hệ thống)

 Có băng thông lớn và nhanh hơn buýt bên ngoàiVí dụ

Fall 2009 Kiến trúc máy tính - CPU 22

 f0, f1: mã hoá

lệnh

 11: AND

 10: NOT A

 01: OR

 00: ADD

Tập lệnh

Giảng viên: Phạm Hoàng Duy2010 Kiến trúc máy tính - Tập lệnh 2

Nội dung chính

 Giới thiệu tập lệnh

 Định dạng và các thành phần lệnh

 Địa chỉ lệnh/toán hạng

 Các chế độ địa chỉ

 Các kiểu lệnh2010 Kiến trúc máy tính - Tập lệnh 3

Lệnh và các thành phần

 Lệnh là từ (số) nhị phân thể hiện một thao tác xác

định của bộ xử lý

 Các lệnh được lưu trong bộ nhớ

 Các lệnh được nạp từ bộ nhớ vào CPU trong quá trình

thực hiện

 Mỗi lệnh có chức năng riêng

 Các lệnh được chia ra thành các nhóm: chuyển dữ

liệu, tính toán, rẽ nhánh, v.v.2010 Kiến trúc máy tính - Tập lệnh 4

Lệnh và các thành phần

 Thực thi lệnh được chia thành các giai đoạn. Tiêu

biểu có 4 giai đoạn:

 Nạp lệnh (IF): lệnh được nạp từ bộ nhớ vào CPU;

 Giải mã lệnh (ID): CPU "đọc" lệnh;

 Thực thi lệnh: lệnh được CPU thực thi;

 Ghi kết quả (WB): các kết quả xử lý (nếu có) được ghi lại

vào thanh ghi hoặc bộ nhớ.2010 Kiến trúc máy tính - Tập lệnh 5

Chu trình thực thi

 Chu trình thực thi là khoảng thời gian CPU thực hiện

xong 1 lệnh

 Một chu trình thự thi gồm vài giai đoạn thực hiện lệnh.

 Mỗi giai đoạn thự thi chiếm một vài chu kỳ máy.

 Một chu kỳ máy gồm một vài xung đồng hồ.2010 Kiến trúc máy tính - Tập lệnh 6

Chu trình thực thi

 Chu trình thực hiện lệnh có thể có tới 7 thành phần:

 Chu kỳ nạp

 Chu kỳ đọc bộ nhớ

 Chu kỳ ghi bộ nhớ

 Chu kỳ đọc thiết bị

 Chu kỳ ghi thiết bị

 Chu kỳ chấp nhận ngắt

 Chu kỳ buýt rỗi2010 Kiến trúc máy tính - Tập lệnh 7

Định dạng lệnh

 Định dạng tổng quát của lệnh có hai phần:

 Mã lệnh (Opcode - operation code): Mỗi lệnh có 1 mã

riêng.

 Địa chỉ toán hạng: tuỳ thuộc vào lệnh. Có thể có 1,2 hay 0

địa chỉ.

Opcode Địa chỉ toán hạng

Opcode Nguồn Đích2010 Kiến trúc máy tính - Tập lệnh 8

Toán hạng - 3 địa chỉ

 Định dạng: opcode addr1, addr2, addr3

 addr1, addr2, addr3 tham chiếu tới thanh ghi hay ô nhớ

 Ví dụ:

ADD R1, R2, R3; R1 + R2  R3

R1 cộng R2 rồi gán kết quả cho R3.

Ri

là thanh ghi CPU.

ADD A, B, C; M[A]+M[B]  M[C]

A, B, C là các ô nhớ.2010 Kiến trúc máy tính - Tập lệnh 9

Toán hạng - 2 địa chỉ

 Định dạng: opcode addr1, addr2

 addr1, addr2 tham chiếu tới thanh ghi hay ô nhớ

 Ví dụ:

ADD R1, R2; R1 + R2  R2

R1 cộng R2 rồi gán kết quả cho R2.

Ri

là thanh ghi CPU.

ADD A, B; M[A]+M[B]  M[B]

A và B là các ô nhớ.2010 Kiến trúc máy tính - Tập lệnh 10

Toán hạng - 1 địa chỉ

 Định dạng: opcode addr1

 addr1 tham chiếu tới thanh ghi hay ô nhớ

 addr1 refers to a register or a memory location.

 This Định dạng uses Racc (Accumulator) as the default register

as the 2nd address.

 Ví dụ:

ADD R1; R1 + Racc  Racc

R1 cộng Racc rồi gán kết quả cho Racc.

Ri

là thanh ghi CPU.

ADD B; M[B]+ Racc  Racc

B là ô nhớ.2010 Kiến trúc máy tính - Tập lệnh 11

Toán hạng - 1địa chỉ rưỡi

 Định dạng: opcode addr1, addr2

 addr1 tham chiếu tới thanh ghi còn addr2 tham chiếu

tới ô nhớ hoặc ngược lại.

 Địa chỉ rưỡi là sử dụng các toán hạng lẫn lộn giữa bộ

nhớ và thanh ghi.

 Ví dụ:

ADD B, R1; M[B] + R1  R1

R1 là thanh ghi CPU còn B là ô nhớ.2010 Kiến trúc máy tính - Tập lệnh 12

Toán hạng - 0 địa chỉ

 Không sử dụng địa chỉ được dùng để thực hiện

các thao tác ngăn xếp: đặt vào & lấy ra2010 Kiến trúc máy tính - Tập lệnh 13

Các chế độ địa chỉ

 Các chế độ địa chỉ là các phương pháp tổ chức

các toán hạng của câu lệnh.

 Các chế độ tiêu biểu:

 Tức thì

 Trực tiếp

 Gián tiếp thanh ghi

 Gián tiếp bộ nhớ

 Chỉ số

 Tương đối2010 Kiến trúc máy tính - Tập lệnh 14

Chế độ trực tiếp

 Giá trị của các toán hạng nguồn có sẵn trong câu

lệnh.

 Toán hạng đích có thể là thanh ghi hay ô nhớ.

 Ví dụ:

LOAD #1000, R1; 1000  R1

Nạp giá trị 1000 vào thanh ghi R1.

LOAD #500, B; 500  M[B]

Nạp giá trị 500 vào ô nhớ B.2010 Kiến trúc máy tính - Tập lệnh 15

Chế độ trực tiếp (tuyệt đối)

 Địa chỉ ô nhớ được đặt sẵn trong câu lệnh.

 Toán hạng còn lại có thể là thanh ghi hay ô nhớ.

 Ví dụ:

LOAD 1000, R1; M[1000]  R1

Nạp giá trị ở ô nhớ 1000 vào thanh ghi R1.2010 Kiến trúc máy tính - Tập lệnh 16

Chế độ trực tiếp (tuyệt đối)

LOAD 1000, R1

200

200  R12010 Kiến trúc máy tính - Tập lệnh 17

Chế độ gián tiếp

 Trong chế độ này thanh ghi hay ô nhớ dùng để lưu

địa chỉ toán hạng.

 Giá tiếp thanh ghi:

LOAD (Ri

), Rj

; M[Ri

]  Rj

Nạp giá trị ô nhớ có địa chỉ lưu trong thanh ghi Ri

vào Rj

.

 Giá tiếp bộ nhớ:

LOAD (1000), Ri

; M[M[1000]]  Ri

Nạp giá trị ô nhớ có địa chỉ lưu trong ô nhớ 1000 vào Ri

.2010 Kiến trúc máy tính - Tập lệnh 18

Chế độ gián tiếp2010 Kiến trúc máy tính - Tập lệnh 19

Chế độ chỉ số

 Địa chỉ các toán hạng được xác định bằng cách cộng

thêm hằng số vào thanh ghi chỉ số

 Ví dụ:

LOAD X(Rind), Ri

; M[X+Rind]  Ri2010 Kiến trúc máy tính - Tập lệnh 20

Chế độ tương đối

 Địa chỉ toán hạng được xác định bằng cách cộng thêm

hằng số vào thanh ghi chương trình PC.

 Ví dụ:

LOAD X(PC), Ri

; M[X+PC]  Ri2010 Kiến trúc máy tính - Tập lệnh 21

Tóm tắt các chế độ địa chỉ

M[M[1000]]2010 Kiến trúc máy tính - Tập lệnh 22

Các dạng lệnh

 Các dạng lệnh tiêu biểu gồm:

 Các lệnh di chuyển dữ liệu

 Các lệnh số học và lô-gíc

 Các câu lệnh điều khiển và tuần tự

 Các lệnh vào ra2010 Kiến trúc máy tính - Tập lệnh 23

Các lệnh di chuyển dữ liệu

 Chuyển dữ liệu giữa các bộ phận của máy tính:

 Giữa các thanh ghi CPU:

MOVE Ri

, Rj

; Ri

 Rj

 Giữa các thanh ghi và ô nhớ:

MOVE 1000, Rj

; M[1000]  Rj

 Giữa các ô nhớ

MOVE 1000, (Rj

); M[1000]  M[Rj

]2010 Kiến trúc máy tính - Tập lệnh 24

Các lệnh di chuyển dữ liệu2010 Kiến trúc máy tính - Tập lệnh 25

Các lệnh số học và lô gíc

 Các lệnh số học và lô-gíc thực hiện các thao tác số

học và lô-gíc trên các thanh ghi và ô nhớ.

 Ví dụ:

ADD R1, R2, R3; R1 + R2  R3

SUBSTRACT R1, R2, R3; R1 - R2  R32010 Kiến trúc máy tính - Tập lệnh 26

Các lệnh số học phổ biến2010 Kiến trúc máy tính - Tập lệnh 27

Các lệnh lô-gíc phổ biến2010 Kiến trúc máy tính - Tập lệnh 28

Các lệnh tuần tự và điều khiển

 Các lệnh điều khiển thay đổi tuần tự thực hiện các

lệnh:

 Rẽ nhánh có điều kiện (Nhảy có điều kiện)

 Rẽ nhánh vô điều kiện (Nhảy)

 Gọi và trả về (CALL and RETURN)

 Thuộc tính chung của các lệnh này là thay đổi giá trị

của bộ đếm chương trình.

 Dùng thanh ghi cờ ALU để xác định điều kiện.2010 Kiến trúc máy tính - Tập lệnh 29

Các lệnh điều khiển và tuần tự2010 Kiến trúc máy tính - Tập lệnh 30

Các lệnh điều khiển và tuần tự

Lặp đến khi R1 = 02010 Kiến trúc máy tính - Tập lệnh 31

Các lệnh vào/ra

 Các lệnh vào ra được sử dụng để truyền dữ liệu giữa

máy tính và các thiết bị ngoại vi.

 Các thiết bị ngoại vi giao tiếp với máy tính qua các cổng

riêng. Mỗi cổng có địa chỉ xác định.

 Hai lệnh vào ra căn bản là INPUT và OUTPUT

 INPUT truyền dữ liệu từ thiết bị tới bộ xử lý.

 OUTPUT truyền dữ liệu từ bộ xử lý tới thiết bị.2010 Kiến trúc máy tính - Tập lệnh 32

Ví dụ

Đoạn chương trình thực hiện cộng 100 số lưu trong ô nhớ từ vị trí 1000.

Kết quả được lưu vào ô nhớ 2000.

Hệ thống nhớ2010 KTMT- Hệ thống nhớ 2

Nội dung

 Giới thiệu hệ thống nhớ và mô hình phân cấp bộ

nhớ

 Bộ nhớ đệm

 Giới thiệu

 Tổ chức và kiến trúc đệm

 Hiệu năng và phương pháp cái thiện

 RAM

 ROM2010 KTMT- Hệ thống nhớ 3

Hệ thống nhớ2010 KTMT- Hệ thống nhớ 4

Các tham số tham khảo 2010 KTMT- Hệ thống nhớ 5

Phân cấp bộ nhớ

 Các thanh ghi CPU:

 Kích cỡ nhỏ(vài chục byte đến vài KB)

 Tốc độ truy nhập rất nhanh (cùng xung nhịp CPU), thời gian truy

nhập cỡ 0.25 ns.

 Đắt

 Lưu dữ liệu tạm thời và kết quả lệnh

 Bộ nhớ đệm

 Kích cỡ nhỏ (64KB đến 16MB)

 Tốc độ nhanh, thời gian truy nhập cỡ vài ns

 Đắt

 Còn gọi là bộ nhớ "thông minh"

 Lưu dữ liệu và lệnh cho CPU2010 KTMT- Hệ thống nhớ 6

Phân cấp bộ nhớ

 Bộ nhớ chính:

 Kích cỡ lớn, dung lượng từ 256MB tới 4GB ( hệ thống 32 bit)

 Tốc độ chậm, thời gian truy nhập trung bình cỡ 50-70 ns

 Lưu dữ liệu và lệnh cho hệ thống và người dùng

 Khá rẻ

 Bộ nhớ thứ cấp:

 Kích cỡ rất lớn dung lượng từ 20GB tới 1000GB (2TGB)

 Tốc độ rất chậm, thời gian truy nhập trung bình 5ms

 Lưu lượng lớn dữ liệu trong các file với thời gian dài

 Rất rẻ2010 KTMT- Hệ thống nhớ 7

Vai trò phân cấp

 Cải thiện hiệu năng hệ thống

 Cân bằng tốc độ cao của CPU và thấp của bộ nhớ chính

và thứ cấp

 Thời gian truy nhập của hệ thống nhớ gần với thời gian

truy nhập của bộ nhớ đệm

 Giảm chi phí sản xuất

 Các bộ phận đắt tiền chỉ dùng với khối lượng nhỏ

 Các bộ phận rẻ hơn dùng với khối lượng lớn2010 KTMT- Hệ thống nhớ 8

Phân loại bộ nhớ

 Theo kiểu truy nhập:

 Bộ nhớ truy nhập ngẫu nhiên (RAM)

 Bộ nhớ truy nhập tuần tự (SAM)

 Bộ nhớ chỉ đọc (ROM)

 Theo kiểu duy trì thông tin:

 Bộ nhớ thay đổi: thông tin lưu trữ bị mất khi mất nguồn

 Bộ nhớ không thay đổi: thông tin lưu trữ không bị mất khi mất

nguồn

 Theo công nghệ chế tạo:

 Bộ nhớ bán dẫn: ROM, RAM

 Bộ nhớ từ: HDD, FDD, tape

 Bộ nhớ quang: CD, DVD2010 KTMT- Hệ thống nhớ 9

Tổ chức các thiết bị nhớ2010 KTMT- Hệ thống nhớ 10

Tổ chức các thiết bị nhớ

 Đường địa chỉ: kết nối với buýt A; truyền địa chỉ của 1

loạt ô nhớ từ CPU

 Giải mã địa chỉ: dùng thông tin địa chỉ để chọn một loạt

ô nhớ: kích hoạt các ô nhớ đó

 Đường địa chỉ : kết nối với buýt Dconnect to D bus;

truyền dữ liệu vào/ra CPU.

 Chọn chip (CS): chíp nhớ được kích hoạt khi CS ở

mức tích cực. CPU chỉ làm việc với 1 chíp nhớ tại 1

thời điểm.

 Cho phép ghi (WE): ghi vào hàng ô nhớ đã chọn khi

WE ở mức tích cực.

 Cho phép đọc (RE): đọc dữ liệu từ hàng đã chọn khi

RE ở mức tích cực (0).2010 KTMT- Hệ thống nhớ 11

Bộ nhớ đệm

 Khái niệm

 Vai trò

 Các nguyên tắc căn bản

 Kiến trúc

 Tổ chức

 Đọc/Ghi

 Phương pháp thay đổi dữ liệu

 Phương pháp cải thiện hiệu năng2010 KTMT- Hệ thống nhớ 12

Khái niệm

 Bộ nhớ đệm là bộ phận của hệ thống nhớ, đóng vái trò

trung gian giữa CPU và bộ nhớ chính;

 Bộ nhớ đệm có thể nằm ngoài (hệ thống cũ) hoặc trong

CPU (mới);

 Bộ nhớ đệm có kích cỡ nhỏ (16K, 32K,..., 128K với hệ

thống cũ; 256K, 512K, 1MB, 2MB,... với hệ thống mới);

 Bộ nhớ đệm nhanh hơn bộ nhớ chính nhiều;

 Chi phí trên bit của bộ nhớ đệm lớn hơn bộ nhớ chính

nhiều lần.2010 KTMT- Hệ thống nhớ 13

Vai trò

 Cải thiện hiệu năng hệ thống

 Cân bằng chênh lệch tốc độ giữa CPU và bộ nhớ chính

(giảm số lần truy nhập trực tiếp vào bộ nhớ chính).

 Thời gian truy nhập trung bình của bộ nhớ chính gần với

thời gian truy nhập bộ nhớ đệm

 Giảm chi phí sản xuất

 Nếu hai hệ thống có cùng hiệu năng, hệ thống với cache

rẻ hơn;

 Nếu hai hệ thống có cùng chi phí, hệ thống có cache

nhanh hơn.2010 KTMT- Hệ thống nhớ 14

Nguyên tắc căn bản

 Cục bộ không gian:

 Nếu có yêu cầu truy nhập 1 vị trí nhớ, khả năng

vùng nhớ lân cận có yêu cầu truy nhập là cao.

 Áp dụng cho các mục dữ liệu và lệnh có tính

tuần tự cao trong không gian chương trình

 Hầu hết các lệnh chương trình theo tuần tự,

vậy bộ nhớ đệm đọc một khối dữ liệu từ bộ nhớ

chính bao gồm các ô nhớ lân cận với ô nhớ

được truy nhập

Ô lân cận

Ô hiện thời

Ô lân cận2010 KTMT- Hệ thống nhớ 15

Nguyên tắc căn bản

 Cục bộ thời gian:

 Nếu có yêu cầu truy nhập vị trí nhớ, khả

năng vị trí đó được truy nhập tiếp trong

tương lai gần là cao.

 Áp dụng cho các mục dữ liệu và lệnh

trong vòng lặp.

 Bộ nhớ đệm đọc 1 khối dữ liệu từ bộ nhớ

chính bao gồm các mục bộ nhớ của vòng

lặp.

Lệnh1

Lệnh 2

Lệnh 3

Lệnh 4

Lệnh 5 Kết

thúc

lặp

Bắt

đầu lặp2010 KTMT- Hệ thống nhớ 16

Hoán đổi dữ liêu

 CPU đọc/ghi từng mục dữ liệu từ/tới bộ nhớ đệm;

 Lý do?

 Bộ nhớ đệm đọc/ghi khối dữ liệu từ/tới bộ nhớ

chính;

 Lý do?

CPU Bộ nhớ đệm Bộ nhớ chính

Các mục

dữ liệu:

byte, word

Khối dữ liệu:

16, 32, 64

bytes2010 KTMT- Hệ thống nhớ 17

Tỷ lệ đệm trúng và trượt

 Đệm trúng là tình huống CPU truy nhập dữ liệu đã

có trong bộ nhớ đệm.

 Xác suất đệm trúng gọi là tỷ lệ trúng H.

 0 <= H <= 1

 H càng lớn càng tốt.

 Đệm trượt là tình huống CPU truy nhập dữ liệu

không có sẵn trong bộ nhớ đệm.

 Xác suất trượt còn gọi là tỷ lệ trượt, 1- H.

 0 <= (1 - H) <= 1

 Tỷ lệ trược cần phải nhỏ.2010 KTMT- Hệ thống nhớ 18

Kiến trúc bộ nhớ đệm - Bên cạnh

Cache

controller

Tag RAM

SRAM

Main

Memory

CPU

System bus

 Bộ nhớ đệm và bộ nhớ kết nối

với nhau qua buýt hệ thống

 Bộ nhớ đệm và bộ nhớ chính

đều truy nhập vào cùng chu kỳ

buýt của CPU

 Ưu:

 Thiết kế đơn giản

 Trượt nhanh

 Nhược:

 Trúng chậm

SRAM: RAM to

store cache data

Tag RAM: RAM

to store memory

address2010 KTMT- Hệ thống nhớ 19

Kiến trúc bộ nhớ đệm - Xuyên qua

 Bộ nhớ đệm được đặt giữa

CPU và bộ nhớ chính

 Bộ nhớ đệm nhận được chu kỳ

buýt của CPU trước, sau đó

chuyển cho bộ nhớ chính

 Ưu:

 Trúng thì nhanh

 Nhược:

 Thiết kế phức tạp

 Tốn kém

 Trượt thì chậm

Tag

RAM

Main

Memory

CPU

Cache

controller

SRAM

System bus

Back side bus2010 KTMT- Hệ thống nhớ 20

Tổ chức bộ nhớ đệm

 Làm thế nào để bộ nhớ đệm và bộ nhớ chính hoạt động

cùng với nhau?2010 KTMT- Hệ thống nhớ 21

Các kỹ thuật

 Ánh xạ trực tiếp

 Đơn giản nhanh nhưng ánh xạ cố định

 Ánh xạ liên kết đầy đủ

 Phức tạp, chậm nhưng ánh xạ mềm dẻo

 Ánh xạ liên kết tập hợp (nhóm)

 Phức tạp, nhanh và ánh xạ mềm dẻo2010 KTMT- Hệ thống nhớ 22

Ánh xạ trực tiếp

Line n-1

Line 1

Line 0

Bộ nhớ đệm Bộ nhớ chính

Line n-1

Line 1

Line 0

Page 0

Page 1

Page m-12010 KTMT- Hệ thống nhớ 23

Ánh xạ trực tiếp

 Bộ nhớ đệm:

 Chia thành n khối hay dòng Line0 tới Linen-1

 Bộ nhớ:

 Chia thành m trang page0 tới pagem-1.

 Các trang có kích cỡ như là bộ nhớ đệm

 Mỗi trang có n dòng Line0 tới Linen-1

 Ánh xạ:

 Line0 của (page0 tới pagem-1) ánh xạ vào Line0 của bộ nhớ đệm;

 Line1 của (page0 to pagem-1) ánh xạ vào Line1 của bộ nhớ đệm;

 ....

 Linen-1 của (page0 to pagem-1) ánh xạ vào Linen-1 của bộ nhớ đệm;2010 KTMT- Hệ thống nhớ 24

Địa chỉ ánh xạ trực tiếp

 Tag (bit) địa chỉ trang trong bộ nhớ

 Line (bit) địa chỉ dòng trong bộ nhớ đệm

 Word (bit) địa chỉ từ (ô nhớ) trong dòng

Tag Line Word2010 KTMT- Hệ thống nhớ 25

Địa chỉ ánh xạ trực tiếp

 Ví dụ:

 Đầu vào:

 Kích cỡ bộ nhớ = 4GB

 Kích cỡ bộ nhớ đệm = 1MB

 Kích cỡ dòng =32 byte

 Đầu ra:

 Kích cỡ dòng =32 byte = 25  Word = 5 bit

 Kích cỡ bộ nhớ đệm = 1MB = 210  Có 210 / 25 = 25 lines 

dòng = 5 bit

 Tag = 32bit địa chỉ - Line - Word = 32 - 5 - 5 = 22 bit.2010 KTMT- Hệ thống nhớ 26

Ánh xạ trực tiếp

 Ưu:

 Thiết kế đơn giản

 Nhanh do ánh xạ trực tiếp, khi biết địa chỉ ô nhớ có thể

nhanh chóng tìm được vị trí trong bộ nhớ đệm.

 Nhược:

 Do ánh xạ trực tiếp nên khả năng xung đột cao

 Tỷ lệ trúng thấp.2010 KTMT- Hệ thống nhớ 27

Ánh xạ liên kết đầy đủ

Line n-1

Line 1

Line 0

Bộ

nhớ

đệm

Bộ nhớ

Line m-1

Line 1

Line 02010 KTMT- Hệ thống nhớ 28

Ánh xạ liên kết đầy đủ

 Bộ nhớ đệm:

 Chia thành n khối hoặc dòng Line0 tới Linen-1

 Bộ nhớ chính:

 Chia thành m khối hoặc dòng Line0 tới Linem-1.

 Kích cỡ dòng trong bộ nhớ đệm bằng với dòng trong bộ nhớ

 Số các dòng trong bộ nhớ lớn hơn rất nhiều so với dòng trong bộ

nhớ đệm (m >> n).

 Ánh xạ:

 Một dòng trong bộ nhớ có thể ánh xạ tới bất kỳ dòng nào trong bộ

nhớ đệm;

 Dòng Linei

trong bộ nhớ có thể ánh tới Linej

trong bộ nhớ đệm;2010 KTMT- Hệ thống nhớ 29

Địa chỉ ánh xạ liên kết đầy đủ

 Tag (bit) địa chỉ của dòng trong bộ nhớ (page =1)

 Word (bit) địa chỉ của từ nhớ trong dòng

Tag Word2010 KTMT- Hệ thống nhớ 30

Địa chỉ ánh xạ liên kết đầy đủ

 Ví dụ:

 Đầu vào:

 Kích cỡ bộ nhớ = 4GB

 Kích cỡ bộ đệm = 1MB

 Kích cỡ dòng line =32 byte

 Đầu ra

 Cỡ dòng Line = 32 byte = 25  Word = 5 bit

 Tag = 32bit địa chỉ - Word = 32 - 5 = 27 bit.2010 KTMT- Hệ thống nhớ 31

Địa chỉ ánh xạ liên kết đầy đủ

 Ưu:

 Giảm xung đột nhờ ánh xạ mềm dẻo

 Tỷ lệ trúng cao hơn.

 Nhược:

 Chậm do phải tìm kiếm địa chỉ ô nhớ trong bộ đệm.

 Phức tạp do có n bộ so sánh địa chỉ thêm vào trong bộ

nhớ đệm.

 Thường dùng cho bộ đệm cỡ nhỏ.2010 KTMT- Hệ thống nhớ 32

Địa chỉ ánh xạ liên kết nhóm

Line n-1

Line 1

Line 0

Bộ đệm Bộ nhớ

Line n-1

Line 1

Line 0

Page 0

Page 1

Page m-1

Line n-1

Line 1

Line 0

Way 0 Way 12010 KTMT- Hệ thống nhớ 33

Địa chỉ ánh xạ liên kết nhóm

 Bộ nhớ đệm:

 Chia thành k nhóm có cùng cỡ;

 Mỗi nhóm chia thành n khối hay dòng Line0 tới Linen-1

 Bộ nhớ:

 Chia thành m trang page0 tới pagem-1.

 Các trang có cùng cỡ như nhóm trong bộ nhớ đệm

 Mỗi trang có n dòng Line0 tới Linen-1

 Ánh xạ:

 Ánh xạ từ trang tới nhóm (ánh xạ linh hoạt):

 Một trang nhớ có thể được ánh xạ tới bất kỳ nhóm nào trong bộ nhớ đệm.

 Ánh xạ các dòng trong trang tới dòng trong nhóm (Ánh xạ cố định):

 Line0 của pagei

ánh xạ tới Line0 của nhóm wayj

 Line1 của pagei

ánh xạ tới Line1 của nhóm wayj

 ....

 Linen-1 của pagei

ánh xạ tới Linen-1 của nhóm wayj

;2010 KTMT- Hệ thống nhớ 34

Địa chỉ ánh xạ liên kết nhóm

 Tag (bit) địa chỉ của trang trong bộ nhớ

 Set (bit) địa chỉ dòng trong nhóm của bộ nhớ đệm

 Word (bit) địa chỉ từ nhớ trong dòng

Tag Set Word2010 KTMT- Hệ thống nhớ 35

Set associative mapping address

 Ví dụ:

 Đầu vào:

 Bộ nhớ = 4GB

 Bộ đệm = 1MB, 2 nhóm

 Cỡ dòng =32 byte

 Đầu ra

 Cỡ dòng =32 byte = 25  Word = 5 bit

 Cỡ bộ đệm = 1MB = 210  there are 210 / 25 / 2 = 24 lines trong

1 nhóm  Set = 4 bit

 Tag = 32bit địa chỉ - Set - Word = 32 - 4 - 5 = 23 bit.2010 KTMT- Hệ thống nhớ 36

Ánh xạ liên kết nhóm

 Ưu:

 Nhanh do ánh xạ trực tiếp dùng với ánh xạ dòng;

 Giảm xung đột do ánh xạ từ trang nhớ tới nhóm của bộ

đệm là linh hoạt

 Tỷ lệ đệm trúng cao hơn

 Nhược:

 Phức tạp về thiết kế và điều khiển do bộ nhớ đệm được

chia thành nhiều nhóm.2010 KTMT- Hệ thống nhớ 37

Đọc ghi bộ nhớ đệm

 Đọc

 Đệm trúng ( dữ liệu cần nằm sẵn trong bộ đệm)

 Mục dữ liệu được nạp từ bộ đệm vào CPU

 Bộ nhớ chính không tham gia vào thao tác này

 Đệm trượt (dữ liệu cần không có trong bộ đệm)

 Mục dữ liệu được nạp từ bộ nhớ chính vào trong bộ đệm

 Dữ liệu được nạp tiếp từ bộ nhớ đệm vào CPU

----> thiệt về thời gian2010 KTMT- Hệ thống nhớ 38

Đọc/ghi bộ nhớ đệm

 Thao tác ghi

 Đệm trúng

 Ghi ngay (Write through): mục dữ liệu được ghi vào bộ đệm và

bộ nhớ chính cùng lúc

 Ghi chậm (Write back): mục dữ liệu được ghi vào bộ đệm trước,

rồi cả khối dữ liệu được ghi vào bộ nhớ chính khi khối nhớ bị

thay thế.

 Đệm trượt

 Ghi có cấp phát (Write allocate - nạp trong lúc ghi): mục dữ liệu

trước tiên được ghi từ bộ nhớ chính, rồi cả khối nhớ được nạp

vào bộ đệm.

 Ghi không cấp phát (Write non-allocate) (not fetch on write):

Mục dữ liệu chỉ được ghi vào bộ nhớ chính.2010 KTMT- Hệ thống nhớ 39

Phương pháp thay thế đệm

 Phương pháp thay thế bộ nhớ đệm xác định các

khối nhớ nào được thay thế khi có khối nhớ mới

đưa vào trong bộ nhớ đệm.

 3 phương pháp:

 Thay ngẫu nhiên

 Thay FIFO

 Thay LRU2010 KTMT- Hệ thống nhớ 40

Phương pháp thay thế đệm

 Thay ngẫu nhiên:

 Các khối nhớ được chọn ngẫu nhiên

 Ưu:

 Triển khai đơn giản

 Nhược:

 Tỷ lệ trượt cao do không tính đến khối nhớ đang được dùng.

 Nếu khối nhớ đang dùng bị thay ra thì sẽ bị trượt và cần phải nạp lại

khối nhớ.2010 KTMT- Hệ thống nhớ 41

Phương pháp thay thế đệm

 Thay thế FIFO :

 Dựa trên nguyên tắc vào trước ra trước (First In First Out)

 Các khối nhớ nào được nạp vào trước thì bị thay trước.

 Ưu:

 Tỷ lệ trượt thấp hơn so với phương pháp ngẫu nhiên

 Nhược:

 Tỷ lệ trượt vẫn cao do không tính đến các khối nhớ đang được dùng.

 Một khối nhớ cũ có thể đang được sử dụng

 Phức tạp khi triển khai do cần thêm mạch giám sát thứ tự nạp các

khối.2010 KTMT- Hệ thống nhớ 42

Phương pháp thay thế đệm

 Thay thế LRU :

 Khối nhớ đệm ít được sử dụng gần đây nhất sẽ bị thay

ra.

 Ưu:

 Tính đến các khối đang được dùng

 Tỷ lệ trượt thấp hơn 2 phương pháp trên

 Nhược:

 Phức tạp do cần thêm mạch giám sát tần suất sử dụng các khối

nhớ.2010 KTMT- Hệ thống nhớ 43

Hiệu năng, các yếu tố ảnh hưởng

 Thời gian truy nhập trung bình của hệ thống nhớ có

đệm:

taccess = (Hit cost) + (miss rate) * (miss penalty)

taccess = tcache + (1 - H) * (tmemory)

H tỷ lệ đệm trúng.

tcache = 5ns, tmemory = 60ns và H=80% ta có:

taccess = 5 + (1 - 0.8) * (60) = 5+12 = 17ns

If tcache = 5ns, tmemory = 60ns và H=95%, ta có:

taccess = 5 + (1 - 0.95) * (60) = 5+3 = 8ns2010 KTMT- Hệ thống nhớ 44

Các yếu tố

 Các yếu tố ảnh hưởng hiệu năng

 Cỡ bộ đệm

 Lớn hay bé?

 Phân chia bộ đệm: bộ đệm lệnh và cho dữ liệu

 Bộ đệm nhiều tầng2010 KTMT- Hệ thống nhớ 45

Cỡ bộ đệm

 Thống kê:

 Tỷ lệ đệm trượt lệnh nhỏ hơn dữ liệu nhiều :

8KB đệm lệnh, tỷ lệ trượt < 1%

256KB đệm lệnh, tỷ lệ trượt < 0.002%

----> Tăng kích cỡ đệm lệnh không hiệu quả.

8KB đệm dữ liệu, tỷ lệ trượt < 4%

256KB đệm dữ liệu, tỷ lệ trượt < 3%

----> tăng kích cỡ bộ đệm 32 lần, tỷ lệ trượt giảm 25% (4% xuống

3%).2010 KTMT- Hệ thống nhớ 46

Kích cỡ bộ đệm

 Bộ đệm lớn:

 Chứa được nhiều khối nhớ

 Giảm số lần hoán đổi các khối của các chương trình khác

nhau ra bộ nhớ chính.

 Bộ đệm lớn chậm hơn bộ đệm nhỏ

 Không gian tìm kiếm lớn hơn.

 Xu thế: bộ đệm ngày càng lớn:

 Hỗ trợ đa nhiệm tốt hơn

 Hỗ trợ xử lý song song tốt hơn

 Hỗ trợ hệ thống CPU đa nhân tốt hơn.2010 KTMT- Hệ thống nhớ 47

Phân chia bộ đệm

 Bộ đệm có thể được chia thành đệm dữ liệu và lệnh

để có hiệu năng tốt hơn do:

 Dữ liệu và lệnh khác nhau về tính cục bộ

 Dữ liệu có tính cục bộ về thời gian hơn là không gian trong khi

đó lệnh lại có xu hướng ngược lại

 Đệm lệnh chỉ hỗ trợ thao tác đọc còn dữ liệu cần hỗ trợ cả

đọc và ghi.

---> tối ưu đơn giản hơn.

 Hỗ trợ nhiều thao tác đọc và ghi cùng lúc ---> giảm xung

đột tài nguyên.

 Tích hợp với các chức năng khác như giải mã trước vào

trong bộ đệm lệnh ---> xử lý lệnh tốt hơn.2010 KTMT- Hệ thống nhớ 48

Phân chia bộ đệm

 Thực tế, hầu hết đệm mức 1 L1 chia làm 2 phần lệnh

và dữ liệu. Các mức đệm cao hơn thì không chia. Lý

do?

 Chia L1 sẽ thu được lợi ích tối đa do L1 gần CPU nhất.

CPU đọc ghi trực tiếp lên L1.

 Chia ở mức cao hơn thì không thu được lợi ích như vậy

mà lại tạo ra phức tạp trong hệ thống điều khiển đệm.2010 KTMT- Hệ thống nhớ 49

Đệm nhiều mức

 Cải thiện hiệu năng do đệm nhiều mức cân bằng tốc

độ CPU và bộ nhớ chính tốt hơn đệm 1 mức.

CPU L1 L2 L3 Main memory

1ns 5ns 15ns 30ns 60ns

1ns 5ns 60ns

 Thực tế, bộ đệm thường có 2 mức: L1 và L2. Một vài

CPU có đệm 3 mức: L1,L2, L3.

 Giảm chi phí.2010 KTMT- Hệ thống nhớ 50

Các cách làm giảm tỷ lệ trượt

 Bộ đệm tốt khi:

 Tỷ lệ trúng cao

 Tỷ lệ trượt thấp

 Trễ khi trượt không quá dài

 Miss types:

 Compulsory misses: misses usually happen at the program loading

time when program code are loading into memory and code are not

fetched into cache.

 Capacity misses: misses due to cache limited capacity, especially in

multi-tasking environment. As cache is small, code of programs are

swapped frequently between cache and main memory.

 Conflict misses: misses due to conflicts when there are many

memory blocks are competing for one cache block.2010 KTMT- Hệ thống nhớ 51

Các cách làm giảm tỷ lệ trượt

 Tăng kích cỡ khối đệm:

 Giảm tỷ lệ trượt bắt buộc:

 Khối nhớ lớn che phủ vùng nhớ cục bộ lớn hơn ---> giảm tỷ lệ

trượt bắt buộc.

 Tăng trượt xung độtIncrease conflict misses:

 Khối đệm lớn giảm số khối trong bộ đệm, như vậy nhiều khối

trong bộ nhớ chính tham chiếu tới một khối đệm ---> tăng tỷ lệ

trượt xung đột.

 Khối đệm lớn làm lãng phí dung lượng đệm (một vài phần

không bao giờ được dùng).2010 KTMT- Hệ thống nhớ 52

Các cách làm giảm tỷ lệ trượt

 Tăng mức liên kết (tăng số nhóm):

 Giảm trượt do xung đột:

 Tăng số nhóm ---> ánh xạ bộ đệm và bộ nhớ linh hoạt hơn,

nhiều lựa chọn hơn ---> giảm trượt do xung đột.

 Làm chậm bộ đệm:

 Tăng số nhóm ---> tăng không gian tìm kiếm ---> chậm hơn.2010 KTMT- Hệ thống nhớ 53

Giới thiệu RAM

 RAM là bộ nhớ truy nhập ngẫu nhiên, mỗi ô nhớ được

truy nhập theo bất kỳ thứ tự nào.

 RAM là bộ nhớ thay đổi: tất cả thông tin bị mất khi tắt

nguồn điện.

 RAM là bộ nhớ bán dẫn. Mỗi ô nhớ là cổng bán dẫn.

 RAM lưu trữ thông tin hệ thống và người dùng.

 Thông tin hệ thống: thông tin phần cứng và HĐH

 Thông tin người dùng: dữ liệu và đoạn mã chương trình người

dùng.2010 KTMT- Hệ thống nhớ 54

Các loại RAM

 RAM tĩnh (Static RAM - SRAM)

 Mỗi bít là mạch lật flip-flop

 Thông tin lưu trong SRAM ổn định không cần phải định kỳ

làm tươi.

 SRAM nhanh nhưng đắt hơn DRAM

 RAM động (Dynamic RAM-DRAM)

 Mỗi bít DRAM là 1 tụ điện

 Các thông tin DRAM không ổn định và cần phải làm tươi

định kỳ

 DRAM chậm nhưng rẻ hơn SRAM2010 KTMT- Hệ thống nhớ 55

SRAM's Basic Elements

SRAM cell-6T

B

E

C C

B

E

Mạch lật đơn giản2010 KTMT- Hệ thống nhớ 56

Đặc tính SRAM

 SRAM sử dụng mạch chốt 2 trạng thái ổn định để lưu

các bít

 Một bít SRAMsử dụng 6, 8, 10 transistors (6T, 8T,10T).

 SRAM nhanh hơn do:

 Các bít có cấu trúc đối xứng

 Chíp SRAM nhận tín hiệu địa chỉ các bít nhớ bất cứ lúc nào

 SRAM đắt:

 Dùng nhiều transitor hơn DRAM

 Cấu trúc bên trong phức tạp hơn, mật độ SRAM thấp hơn DRAM.2010 KTMT- Hệ thống nhớ 57

Các thành phần cơ bản DRAM

Tụ điện

Transistor

1 bit DRAM2010 KTMT- Hệ thống nhớ 58

Các đặc tính

 Bít DRAM dựa trên tụ điện và transitor. 2 mức tích điện của

tụ thể hiện giá trị lôgíc : 0-rỗng and 1-đầy.

 Về bản chất, điện tích của tụ điện bị dò, và phải được nạp

lại định kỳ để duy trì thông tin.

 DRAM thường được sắp xếp thành hàng ngang 1 tụ và 1

transitor cho 1 ô nhớ.

 DRAM chậm hơn SRAM do phải làm tươi định kỳ và quá

trình nạp tốn thời gian.

 DRAM rẻ hơn SRAM do sử dụng ít transistor trên ô nhớ và

mật độ cao hơn.2010 KTMT- Hệ thống nhớ 59

Các kiểu DRAM

 SDRAM: DRAM có giao tiếp đồng bộ xung nhịp buýt.

 SDR SDRAM: SDRAM cho phép 1 lệnh và truyền 1

từ nhớ trên chu kỳ xung nhịp; 100MHz, 133MHz

 DDR SDRAM: Double Data Rate SDRAM

 DDR1 SDRAM: DDR 266, 333, 400

 DDR2 SDRAM: DDR2 400, 533, 800

 DDR3 SDRAM: DDR3 800, 1066, 1333, 16002010 KTMT- Hệ thống nhớ 60

Types of DRAMs

SDRAM PC133 DDR3 1066 SDRAM2010 KTMT- Hệ thống nhớ 61

Giới thiệu ROM

 ROM là bộ nhớ chỉ đọc. Ghi vào ROM cần sử dụng các

thiết bị hoặc phương pháp đặc biệt.

 ROM là bộ nhớ không thay đổi các thông tin lưu không bị

mất khi mất nguồn.

 ROM là bộ nhớ bán dẫn. Mỗi ô nhớ là cổng bán dẫn.

 ROM thường được sử dụng để lưu thông tin hệ thống.

 Thông tin hệ thống: thông tin BIOS và phần cứng2010 KTMT- Hệ thống nhớ 62

ROM - Ví dụ2010 KTMT- Hệ thống nhớ 63

Các loại ROM

 ROM thường: dạng ROM cổ nhất dùng tia cực tím để ghi

thông tin.

 PROM: Programmable ROM. PROM có thể ghi hay lập

trình qua các thiết bị gọi là bộ lập trình PROM.

 EPROM: Erasable programmable read-only memory.

ROM có thể xoá bằng tia cực tím công suất lớn.

 EEPROM: dạng EPROM có thể xoá bằng điện.

 Bộ nhớ Flash:

 Dạng EEPROM có thể xoá và ghi nhanh hơn EEPROM thường

 Có thể xoá ghi với khối lượng lớn.

Bạn đang đọc truyện trên: Truyen2U.Pro